Many-to-Many Actualización de relaciones elocuentes con Laravel Form Model Binding & Checkboxes

Tengo 3 mesas:

puertas

carné de identidadnombreimagen

colores

carné de identidadnombreimagen

colores de puerta

carné de identidaddoor_idcolor_id

y 2 modelos con una relación de muchos a muchos (cada puerta viene en una variedad de colores, y muchos colores se superponen puerta a puerta):

Modelo de puerta

class Door extends Eloquent {
    public function colors()
    {
        return $this->belongsToMany('Color', 'door_colors');
    }
}

Modelo de color

class Color extends Eloquent {
    public function doors()
    {
        return $this->belongsToMany('Door', 'door_colors');
    }
}

Quiero crear un formulario donde pueda editar la puerta y actualizar los colores disponibles mediante casillas de verificación. Este es miControlador de puertas de administrador

class AdminDoorsController extends AdminController {
    public function edit($id)
    {
        $data['door'] = Door::find($id);
        $data['colors'] = Color::all();
        return View::make('admin/doors/form', $data);
    }
}

y elVista de formulario de puertas de administrador

{{ Form::model($door) }}
Colors:
@foreach ($colors as $color)
{{ Form::checkbox('colors[]', $color->id) }} {{ $color->name }}
@endforeach
{{ Form::close() }}

Pregunta 1: ¿Cómo hago para que las casillas de verificación salgan, las que tienen una relación existente con la puerta actual están marcadas y las que no están marcadas?

Pregunta 2: Una vez que marque las casillas y haga clic en enviar, ¿cómo actualizaría las relaciones?$door->colors()->detach(); para borrar todos los existentes para esta puerta, entonces$door->colors()->attach($color_id_array); ¿Para crear nuevos basados ​​en una serie de identificaciones de color?

Cualquier entrada es apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta