Many-to-Many Actualización de relaciones elocuentes con Laravel Form Model Binding & Checkboxes
Tengo 3 mesas:
puertas
carné de identidadnombreimagencolores
carné de identidadnombreimagencolores de puerta
carné de identidaddoor_idcolor_idy 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!