2017-10-11 103 views
0

我從我的表單頁面獲取值數組的形式: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列的表羣集。這兩個表之間的鏈接是users.id和clusters.user_id

我知道如果我使用App\User::find(1)->clusters()->saveMany(x)那麼x需要是一組對象,但我想知道如何才能對數組做直?或者我需要對數組執行foreach,然後逐個保存羣集(從我從表單中獲得的內容)?

謝謝。

回答

0

嘗試使用函數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

+0

如何可以在使用foreach這種情況下,因爲這個數組可以是變量 – Richard

+1

你可以使用這種方式的foreach: $ user = App \ User :: find(1); foreach($ managed_cluster as $ name){ $ cluster = new App \ Cluster(['cluster_name'=> $ name]); $ user-> clusters() - > save($ cluster); } –