2013-01-21 49 views
2

是否有可能「種子」的數據庫就像你可以在鐵軌?我想和一個imageobject管理器結合使用一個種子,以便我可以通過標題獲取記錄。種子銀條紋數據庫

+0

您可能想看看[silversmith](https://github.com/unclecheese/SilverSmith)項目。除了代碼腳手架,它還有一個[內容種子](https://github.com/unclecheese/SilverSmith#content-seeding)和[內容羣體](https://github.com/unclecheese/SilverSmith#content-population)功能。 – ivoba

+0

銀匠已經過時(沒有移植到3.1),但現在有一個播種模塊,看起來很有前途:https://github.com/Little-Giant/silverstripe-seeder。 – wmk

回答

7

基於您的評論留在英戈的回答,你想一個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班運行。

+0

這正是我所追求的,謝謝! – jay

0

不太清楚你在這種情況下「種子」的含義。有一個"data-generator" module它編寫隨機數據與ORM列類型的受過教育的猜測。

+0

「Seed」我的意思是我想添加默認記錄。因此,當數據庫建立時,它會添加某些記錄(即標題:橫幅1,鏈接:「http://www.google.com」) – jay

1

您可以通過設置$defaults數組來設置頁面$db變量的默認值。

class Page extends SiteTree { 

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

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

    ... 
}