Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel一对多关系插入数组_Php_Laravel - Fatal编程技术网

Php Laravel一对多关系插入数组

Php Laravel一对多关系插入数组,php,laravel,Php,Laravel,我从我的表单页面获得一个值数组,其形式如下: "managed_cluster" => array:2 [▼ 0 => "Benelux" 1 => "Germany & Austria" ] 我有两种型号: 使用者 所以我有id和name列的表用户,还有id、user\u id和cluster\u name列的表集群。这两个表之间的链接是users.id和clusters.user\u id 我知道如果我使用App\User::find(1)->cl

我从我的表单页面获得一个值数组,其形式如下:

"managed_cluster" => array:2 [▼
    0 => "Benelux"
    1 => "Germany & Austria"
]
我有两种型号: 使用者

所以我有id和name列的表用户,还有id、user\u id和cluster\u name列的表集群。这两个表之间的链接是users.id和clusters.user\u id

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


谢谢。

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

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

$user->clusters()->createMany([
    [
        'cluster_name' => 'cluster1',
    ],
    [
        'cluster_name' => 'cluster2',
    ],
]);
更多信息:


在这种情况下,如何使用foreach,因为此数组可能是可变的。您可以这样使用foreach:$user=App\user::find(1);foreach($managed_cluster as$name){$cluster=new App\cluster(['cluster_name'=>$name]);$user->clusters()->save($cluster);}
$user = App\User::find(1);

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