Laravel mutator或创建事件
问题描述:
我有两个模型,Card
和Expense
。两者都有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
答
如果你想使用type
从卡模式,你可以做这样的事情:
$card = Card::find(1);
$card->expenses()->create(array_merge($request->all(), ['type' => $card->type]));
但是,如果卡模型中已经有一个卡,并且费用属于卡,则复制type
并不是一个好主意。
谢谢,是的,我正在考虑为我的应用程序的最佳解决方案,所以我可能不得不重新考虑这一点,但现在,这应该这样做,谢谢:) – Hardist