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',
],
]);