我有模型Object
和模型Prototype
。
传入数据($_POST)
是数组prototype_id[]
:
prototype_id[] = 1;
prototype_id[] = 2;
prototype_id[] = 3;
应该保存在表ObjectPrototypes
中。不,我没有这个模型。
所以,在控制器中我做:
$object = new Object();
$object->name = "Object";
如何将prototype_id []添加/附加到已保存的对象$object
?
重要:
对象可以有一个或多个原型
答案 0 :(得分:0)
一个(快速)解决方案可能是在此表上执行原始插入。假设数据透视表名称为object_prototype
,您可以执行以下操作:
$object = new Object();
$object->name = "Object";
$object->save();
foreach($request->input('prototype_id') as $p) {
\DB::table('object_prototype')->insert([
'object_id' => $object->id,
'prototype_id' => $prototype
]);
}
它应该有效,认为它不是真正的Laravelish。
您也可以使用pivot,但它需要更多样板。您可以在这里查看:https://laravel.com/docs/5.4/eloquent-relationships#updating-many-to-many-relationships和此处:https://laravel.com/docs/5.4/eloquent-relationships#one-to-many-inverse这就是我通常所做的事情,但对于一个简短的回答来说有点太长了,我认为Laravel Doc更完整。