2015-04-21 12 views
6

Ho project_group tabella pivot con questi campi: id, group_id, project_id, admin_id, user_idCome attribuire un valore diverso per campo aggiuntivo nella tabella pivot laravel 5

Ciò che uso per collegare gruppo e progetti insieme:

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

E 'possibile per ogni record in quella tabella pivot aggiungere user_id diffirent.

Ad esempio:

Primo record:

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

secondo record:

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

scheda 3 °:

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

4a registrazione:

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

In linea di principio se seleziono 2 progetti da progetti html list e 2 utenti da ht Lista utenti ml ho bisogno al risultato, come nell'esempio sopra ottenere ...

risposta

0

Ecco una soluzione, se qualcuno ha modo migliore si prega di mettere qui ...

$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

Certo, in questo modo:

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

E se ho capito il problema a destra, si può costruire una tale varietà come questo:

$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

ho bisogno di mantenere 'project_id', quindi dovrei ottenere' di ffrent user_id per diffirent project_id' .... Quando seleziono 2 progetti da progetti html list e 2 utenti da html users list ho bisogno di ottenere risultati come nell'esempio sopra ... –

+0

Dai un'occhiata alla risposta aggiornata ... – lukasgeiter

+0

Ritorna come una matrice come questa: '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]] I progetti verranno ignorati, ma ho bisogno anche di progetti da allegare ... :) –

Problemi correlati