Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为透视表Laravel 5中的附加字段附加不同的值_Php_Mysql_Laravel 5 - Fatal编程技术网

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。。。我会给你投票,因为你给了我想法。。。