Обновление отношений «многие ко многим Eloquent» с привязкой и флажками модели форм Laravel
У меня есть 3 таблицы:
двери
Я быимяобразцвета
Я быимяобразdoor_colors
Я быdoor_idcolor_idи 2 модели с соотношением «многие ко многим» (каждая дверь представлена в разных цветах, и многие цвета накладываются от двери к двери):
Модель двери
class Door extends Eloquent {
public function colors()
{
return $this->belongsToMany('Color', 'door_colors');
}
}
Цветовая модель
class Color extends Eloquent {
public function doors()
{
return $this->belongsToMany('Door', 'door_colors');
}
}
Я хочу создать форму, в которой я могу редактировать дверь и обновлять доступные цвета с помощью флажков. Это моеКонтроллер дверей администратора
class AdminDoorsController extends AdminController {
public function edit($id)
{
$data['door'] = Door::find($id);
$data['colors'] = Color::all();
return View::make('admin/doors/form', $data);
}
}
иПредставление формы дверей администратора
{{ Form::model($door) }}
Colors:
@foreach ($colors as $color)
{{ Form::checkbox('colors[]', $color->id) }} {{ $color->name }}
@endforeach
{{ Form::close() }}
Вопрос 1: Как сделать так, чтобы по мере вывода флажков проверялись те, у кого есть существующая связь с текущей дверью, а те, у которых нет этой связи?
Вопрос 2: Как только я установлю флажки и нажму «отправить», как мне обновить отношения?$door->colors()->detach();
очистить все существующие для этой двери, затем$door->colors()->attach($color_id_array);
создавать новые на основе массива идентификаторов цветов?
Любой вклад приветствуется!