2014-02-13 25 views
0

我有一個模型(我們稱之爲PageModel)與hasMany的關係(我們稱之爲rulesList)。當我創建一個新的PageModel時,我想默認rulesList至少有一個空模型。我如何在雄辯中做到這一點?如何用至少一個空模型實例化新的hasMany Eloquent關係?

代碼示例:

// Normal instantiation 
$this->rulesList; // Equals NULL 

// I can set it manually like so, but is that right? 
$this->rulesList = Collection::make([new RulesListModel]); 
// NOTE: Doing this does not create an empty model when PageModel is output as JSON 
+0

所以你想創建一個模型集合?爲什麼?它可能工作,但這取決於你想在其他地方使用RulesModel嗎? – carousel

+0

@carousel聽起來像cmfolio想要保證,當輸出爲JSON時,PageModel總是有一個rulesList的條目,即使它是空的。 (並沒有其他有用的理由,只是JSON輸出。) – alexrussell

+0

是的,這就是爲什麼我問。模型是一個獨立的單元,他應該有充足的理由像這樣提供給Collection。 – carousel

回答

0

沒有(據我所知)的方式來關係本身內做到這一點。原因是一個雄辯的模型是由數據庫查詢返回值定義的。

你可以在你的數據庫中設置某種空行,但我會建議不這樣做。

可能有效的一種方法:我認爲可以在不運行查詢的情況下創建一個雄辯的模型。我認爲像EloquentModel::fill($attributes)會這樣做。其中$attributes是您的模型的一組屬性,例如array('title' => null, 'description' => null);

您必須創建此手動模型,然後將其添加到您的關係中。

相關問題