在PyroCMS中定义多个流并为每个流添加字段

时间:2012-07-07 04:56:12

标签: php pyrocms

我是PyroCMS的新手,我愿意建立一个招聘网站,其中有2个主要用户,即雇主和求职者。为了允许他们在网站上注册,我使用PyroCMS的Streams API来构建表单。这些用户将成为2个不同模块的一部分,即雇主模块和求职者模块。

在details.php文件中,在install()函数下,我想创建多个流(数据库表)。以下代码可帮助我们添加流:

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

以下代码可帮助我们定义要添加到流中的字段:

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

我关心的是如何添加多个像上面的流,并为每个流添加字段?换句话说,语法将如何

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

知道要将字段添加到哪个流?

2 个答案:

答案 0 :(得分:0)

查看Streams API的Fields Driver文档。字段和流是单独的实体,两者之间没有必需的关联。添加字段时,您可以将其分配给如下所示的流:

$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));

所有关于田野和溪流的谈话都让我想出去......

答案 1 :(得分: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);