Laravel一对多关系插入数组

时间:2017-10-11 11:27:47

标签: php laravel

我从表单页面获取了以下形式的值数组:

"managed_cluster" => array:2 [▼
    0 => "Benelux"
    1 => "Germany & Austria"
]

我有2个型号: 用户

public function clusters()
{
    return $this->hasMany('App\Cluster');
}

所以我有表用户的id和name列,我有id,user_id和cluster_name列的表簇。 2个表之间的链接是users.id和clusters.user_id

我知道如果我使用App\User::find(1)->clusters()->saveMany(x),那么x需要是一组对象,但我想知道如何用数组直接做到这一点?或者我是否需要在数组上进行foreach,然后逐个保存集群(从表单中获取)?

感谢。

1 个答案:

答案 0 :(得分:3)

尝试使用接受数组作为属性的函数 createMany(),例如:

$user = App\User::find(1);

$user->clusters()->createMany([
    [
        'cluster_name' => 'cluster1',
    ],
    [
        'cluster_name' => 'cluster2',
    ],
]);

更多信息:

https://laravel.com/docs/5.5/eloquent-relationships#the-create-method