2015-07-10 48 views
0

所以我試圖讓工廠設置允許隨機播種的測試數據庫。我希望能夠創建一堆用戶,然後創建一堆房間,然後將評論發佈到房間。如何讓數據庫播種工作的多級工廠

這是我有:

factory('App\User', 5)->create()->each(function($u) { 
    $u->rooms()->save(factory('App\Room', 10)->create()->each(function($p) { 
     $p->posts()->save(factory('App\Post', 10)->make()); 
    })); 
}); 

我收到以下錯誤:

Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, instance of Illuminate\Database\Eloquent\Collection given 

我認爲錯誤意味着它試圖創建的職位之前不要創建房間?

回答

2

也許有點晚了,但你必須調用saveMany(...)代替保存(...) 作爲Eloquent documentation

實際上描述的那樣,要創造更多的比一個對象(factory('App\Room', 10)->create()factory('App\Post', 10)->make()),它會返回一個集(在簡短的詞彙,一個對象數組)

特別感謝朋友,誰提醒我RTM ^^

+0

你可能有點晚了,但是你直到幫助別人! 「遲到比從未好」,在我的情況,非常非常!謝謝! – Saborknight