2015-04-21 8 views
6

mam project_group tabeli przestawnej z tym dziedzin: id, group_id, project_id, admin_id, user_idJak dołączyć inną wartość dla dodatkowego pola w tabeli przestawnej laravel 5

Ten używam dołączyć grupy i projekty razem:

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

Czy to możliwe dla każdego rekordu w tej tabeli przestawnej dodaj diffirent id_użytkownika.

Na przykład:

pierwszy rekord:

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

Druga płyta:

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

3th zapis:

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

4-ty zapis:

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

Zasadniczo jeśli wybiorę 2 projekty z listy projektów html i 2 użytkowników z ht listy użytkowników ml muszę uzyskać wynik jak w powyższym przykładzie ...

Odpowiedz

0

Oto jedno rozwiązanie, jeśli ktoś ma lepszy sposób należy umieścić tutaj ...

$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

Pewnie tak:

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

A jeśli zrozumiałem swój problem rację, można zbudować taką tablicę takiego:

$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

muszę zachować 'project_id', więc powinienem dostać' di ffrent id_użytkownika dla diffirent project_id' .... Kiedy wybieram 2 projekty z listy projektów html i 2 użytkowników z listy html, potrzebuję uzyskać wynik jak w przykładzie powyżej ... –

+0

Zobacz zaktualizowaną odpowiedź ... – lukasgeiter

+0

Zwróci ona tablicę jak poniżej: 'tablica: 4 [0 => tablica: 2 [" admin_id "=> 1" id_użytkownika "=> 1] 1 => tablica: 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]] 'projekty będą ignorowane, ale potrzebuję również projektów, które mają być dołączone ... :) –

Powiązane problemy