种子Silverstripe数据库

时间:2013-01-21 14:14:42

标签: php database silverstripe

是否可以像在轨道中一样“播种”数据库?我想将种子与imageobject管理器结合使用,以便我可以按标题获取记录。

3 个答案:

答案 0 :(得分:7)

根据您在Ingo的回答中留下的评论,您希望在页面类中添加requireDefaultRecords()方法。

以下内容来自最近的项目并确保有特定的用户组,但您可以对任何类型的DataObject执行相同操作(例如Page)。

public function requireDefaultRecords() {

    // Make sure there is a readers security group
    $group = Group::get('Group')->filter('Code', 'readers')
    if ( !$group->exists() ) {
        $group = Group::create(array('Title' => 'Readers'));
        $group->write();
    }
}

执行构建时,此函数在所有DataObject类上运行。

答案 1 :(得分:1)

您可以通过设置$db数组来设置网页$defaults变量的默认值。

class Page extends SiteTree {

    public static $db = array(
        'Title' => 'Text',
        'Description' => 'Text'
    );

    public static $defaults = array(
        'Title' => 'Default Title',
        'Description' => 'Default Description'
    );

    ...
}

答案 2 :(得分:0)

在这种情况下,不太确定“种子”是什么意思。有一个"data-generator" module可以在ORM列类型上用有根据的猜测写随机数据。