2

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

4

3 回答 3

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当您进行构建时,此功能会在所有类上运行。

于 2013-01-23T04:17:05.697 回答
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'
    );

    ...
}
于 2013-01-22T00:04:01.007 回答
0

不太确定在这种情况下您所说的“种子”是什么意思。有一个“数据生成器”模块,它使用对 ORM 列类型的有根据的猜测写入随机数据。

于 2013-01-21T15:58:21.787 回答