2017-07-25 50 views
0

我有兩個模型,CardExpense。兩者都有type字段。每當我添加新費用時,我都會在表單中選擇一個Card。它們通過belongsTo關係相關。Laravel mutator或創建事件

事情是,我想自動將我的費用的type字段設置爲與我的卡片類型相同。我不想在我的費用表格中再次下載type。另外,我想用下面我store方法繼續我的費用控制:

auth()->user()->expenses()->create($request->all()); 

我想這應該由模型可能使用賦值函數是可能的,但我不完全知道如何處理這個。

因此,在短期,我需要的是,創建一個新的Expense的時候,我需要的type領域從相關Card被抓住,然後插入Expense type領域。

我不想在我的控制器做的,是一樣的東西:

$expense = new Expense; 
$expense->name = ... And so on 

回答

1

如果你想使用type從卡模式,你可以做這樣的事情:

$card = Card::find(1); 
$card->expenses()->create(array_merge($request->all(), ['type' => $card->type])); 

但是,如果卡模型中已經有一個卡,並且費用屬於卡,則複製type並不是一個好主意。

+0

謝謝,是的,我正在考慮爲我的應用程序的最佳解決方案,所以我可能不得不重新考慮這一點,但現在,這應該這樣做,謝謝:) – Hardist