Czy ktoś może mi pomóc, jak uratować związek wielu za wielu? Mam zadania, użytkownik może mieć wiele zadań, a zadanie może mieć wielu użytkowników (od wielu do wielu). Chcę tylko, aby w formularzu aktualizacji administrator mógł przypisać wielu użytkowników do określonego zadania. Odbywa się to za pomocą wielokrotnego wyboru html
name="taskParticipants[]"
Problem polega na tym, że za pomocą tego samego formularza (danych wejściowych) można dodawać / usuwać użytkowników, dlatego muszę używać sync (). Może powinienem zacząć od początku, ale nie wiem od czego zacząć ...
To jest mój model użytkownika:
public function tasks()
{
return $this->belongsToMany('Task','user_tasks');
}
Model zadań
public function taskParticipants()
{
return $this->belongsToMany('User','user_tasks');
}
TaskController
public function update($task_id)
{
if (Input::has('taskParticipants'))
{
foreach(Input::get('taskParticipants') as $worker)
{
$task2 = $task->taskParticipants->toArray();
$task2 = array_add($task2,$task_id,$worker);
$task->taskParticipants()->sync(array($task2));
}
}
}
To jest struktura tabel id | tytuł | termin realizacji zadań
user_tasks
id|task_id|user_id