簡體   English   中英

如何在數據透視表Laravel 5中為附加字段附加不同的值

[英]How to attach different value for additional field in pivot table Laravel 5

我有這個字段的project_group數據透視表: id, group_id, project_id, admin_id, user_id

這用於將組和項目連接在一起:

$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

第3記錄:

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

第4記錄:

id = 3, group_id = 1 project_id = 3 admin_id = 1 user_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);

這是一個解決方案,如果有人有更好的方法請放在這里...

$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));

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM