2015-04-21 31 views
6

連接不同的價值與這個領域project_group透視表:id, group_id, project_id, admin_id, user_id我如何爲附加字段中的數據透視表Laravel 5

這是我使用附加組和項目一起:

$group -> projects() -> attach($projects,array('admin_id' => Auth::user()->id)); 

是否有可能爲該數據透視表中的每條記錄添加diffirent user_id。

例如:

首先記錄:

id = 1,group_id = 1 project_id = 2 admin_id = 1 user_id = 1

第二記錄:

id = 2,group_id = 1 project_id = 3 admin_id = 1 user_id = 1

3TH記錄:

id = 3,group_id = 1 project_id = 2 admin_id = 1 user_id = 2

第四記錄:

id = 3,group_id = 1 project_id = 3 admin_id = 1 user_id = 2

基本上,如果我從項目html列表中選擇2個項目,並從ht中選擇2個用戶毫升的用戶名單,我需要得到像導致上述例子中...

回答

0

這裏是一個解決方案,如果有人有更好的辦法,請把這裏...

$projectsIds = [11,33]; 

     $userIds = [1,2,4]; 
     $adminId = Auth::id(); 

     if($group -> save()){ 
     foreach($userIds as $userId){ 
      $group -> projects() -> attach($projectsIds,array('admin_id' => $adminId, 'user_id' => $userId)); 

     } 
1

當然,像這樣:

$projects = [ 
    2 => ['admin_id' => 1, 'user_id' => 1], 
    3 => ['admin_id' => 1, 'user_id' => 2], 
    // and so on 
]; 
$group->projects()->attach($projects); 

如果我正確理解你的問題,你可以建立這樣那樣的數組:

$projectsIds = [2,3]; 
$userIds = [1,2]; 
$projects = []; 
$adminId = Auth::id(); 
foreach($userIds as $userId){ 
    $projects += array_fill_keys($projectIds, [ 
     'admin_id' => $adminId, 
     'user_id' => $userId 
    ]); 
} 
$group->projects()->attach($projects); 
+0

我需要保持'project_id',所以我應該有'雙ffrent user_id for diffirent project_id' ....當我從項目html列表中選擇2個項目並從html用戶列表中選擇2個用戶時,我需要獲得如上例所示的結果... –

+0

查看更新後的答案... – lukasgeiter

+0

它會返回像這樣的數組:array = 4 [0 => array:2 [「admin_id」=> 1「user_id」=> 1] 1 => array:2 [「admin_id」=> 1「user_id」= > 1] 2 => array:2 [「admin_id」=> 1「user_id」=> 2] 3 => array:2 [「admin_id」=> 1「user_id」=> 2]]項目將被忽略,但我還需要附加項目...... :) –

相關問題