Обновление отношений «многие ко многим 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); создавать новые на основе массива идентификаторов цветов?

Любой вклад приветствуется!

Ответы на вопрос(2)

Ваш ответ на вопрос