1

私は PyroCMS を初めて使用し、雇用主と求職者という 2 つの主要なユーザーが存在する求人サイトを構築したいと考えています。彼らがサイトに登録できるようにするために、私は PyroCMS の Streams API を使用してフォームを作成しています。これらのユーザーは、EmployerモジュールとJob Seekerモジュールという 2 つの異なるモジュールの一部になります。

details.php ファイルの install() 関数の下に、複数のストリーム (データベース テーブル) を作成したいと考えています。次のコードは、ストリームを追加するのに役立ちます。

$this->streams->streams->add_stream();

次のコードは、ストリームに追加するフィールドを定義するのに役立ちます。

$this->streams->fields->add_fields($fields);

私の懸念は、上記のような複数のストリームを追加し、それぞれにフィールドを追加するにはどうすればよいですか? つまり、構文はどのようになりますか

$this->streams->fields->add_fields($fields);

フィールドを追加するストリームを知っていますか?

4

2 に答える 2

0

この例のように、複数のストリームを追加できます。

    // Add banners streams
    if ( ! $this->streams->streams->add_stream(lang('banner:banners'), 'banners', 'banner', 'banner_', null)) return false;

    // Add groups streams
    if ( ! $this->streams->streams->add_stream(lang('banner:groups'), 'groups', 'banner', 'banner_', null)) return false;

    // Add some fields
    $fields = array(
    // BANNERS
        array(
            'name' => 'Banner Title',
            'slug' => 'banner_title',
            'namespace' => 'banner',
            'assign' => 'banners',
            'type' => 'text',
            'extra' => array('max_length' => 200),
            'title_column' => true,
            'required' => true,
            'unique' => true
        ),
    // GROUPS
        array(
            'name' => 'Group Title',
            'slug' => 'group_title',
            'namespace' => 'banner',
            'assign' => 'groups',
            'type' => 'text',
            'extra' => array('max_length' => 200),
            'title_column' => true,
            'required' => true,
            'unique' => true
        )
);

    $this->streams->fields->add_fields($fields);
于 2012-12-24T14:32:26.770 に答える
0

Streams API については、 Fields Driverのドキュメントを参照してください。フィールドとストリームは別個のエンティティであり、2 つを関連付ける必要はありません。フィールドを追加するとき、次のようにストリームに割り当てることができます:

$field = array(
'name'          => 'Question',
'slug'          => 'question',
'namespace'     => 'streams_sample',
'type'          => 'text',
'extra'         => array('max_length' => 200),
'assign'        => 'STREAM_SLUG_GOES_HERE',
'title_column'  => true,
'required'      => true,
'unique'        => true
);

$this->streams->fields->add_field($field);

または、ストリームとフィールドを別々に作成してから、次のように各フィールドをストリームに割り当てることができます。

$this->streams->fields->assign_field('streams_sample', 'STREAM_SLUG_GOES_HERE', 'question', array('required' => true));

田んぼや小川の話ばかりしていると、外に出たくなります...

于 2012-08-14T17:49:50.963 に答える