2017-07-25 55 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