如何将数据添加到相关表Laravel?

时间:2017-05-03 11:04:19

标签: laravel laravel-5.3 laravel-5.4

我有模型Object和模型Prototype

传入数据($_POST)是数组prototype_id[]

prototype_id[] = 1;
prototype_id[] = 2;
prototype_id[] = 3;

应该保存在表ObjectPrototypes中。不,我没有这个模型。

所以,在控制器中我做:

 $object = new Object();
 $object->name = "Object";

如何将prototype_id []添加/附加到已保存的对象$object

重要:

对象可以有一个或多个原型

1 个答案:

答案 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更完整。