2015-04-21 26 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]]项目将被忽略,但我还需要附加项目...... :) –

相关问题