Php 如何为透视表Laravel 5中的附加字段附加不同的值
我有Php 如何为透视表Laravel 5中的附加字段附加不同的值,php,mysql,laravel-5,Php,Mysql,Laravel 5,我有project\u grouppivot表,其中包含以下字段:id、group\u id、project\u id、admin\u id、user\u id 我使用此选项将组和项目连接在一起: $group -> projects() -> attach($projects,array('admin_id' => Auth::user()->id)); 是否可以为该透视表中的每个记录添加不同的用户id 例如: 第一条记录: id=1,组id=1项目id=2管理员id
project\u group
pivot表,其中包含以下字段:id、group\u id、project\u id、admin\u id、user\u id
我使用此选项将组和项目连接在一起:
$group -> projects() -> attach($projects,array('admin_id' => Auth::user()->id));
是否可以为该透视表中的每个记录添加不同的用户id
例如:
第一条记录:
id
=1,组id
=1项目id
=2管理员id
=1用户id
=1
第二条记录:
id
=2,组id
=1项目id
=3管理员id
=1用户id
=1
第3条记录:
id
=3,组id
=1项目id
=2管理员id
=1用户id
=2
第四条记录:
id
=3,组id
=1项目id
=3管理员id
=1用户id
=2
基本上,如果我从项目html列表中选择2个项目,从html用户列表中选择2个用户,我需要得到上面示例中的结果 当然,像这样:
$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);
如果我正确理解您的问题,您可以构建这样的阵列:
$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);
这里有一个解决方案,如果有人有更好的方法请放在这里
$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));
}
我需要保留
project\u id
,因此我应该为不同的project\u id获取不同的用户id。。。。当我从项目html列表中选择2个项目,从html用户列表中选择2个用户时,我需要得到上面示例中的结果…它将返回如下数组:array:4[0=>array:2[“admin\u id”=>1“user\u id”=>1]1=>array:2[“admin\u id”=>1“user\u id”=>2]3=>数组:2[“管理员id”=>1“用户id”=>2]
项目将被忽略,但我还需要附加项目…:)啊耶,对了,array\u merge
重新索引数组。尝试添加(+
)它们,就像在我更新的答案中一样…它返回未移植的运算符,无论如何,感谢尝试帮助我在下面找到了soultin。。。我会给你投票,因为你给了我想法。。。