Имам връзка много към много между clients
и assets
. За моя клиентски формуляр за редактиране имам поле за избор на множество, с което потребителят може да избере няколко assets
, които да прикачи към клиент. Формулярът използва обвързване с модел, така че автоматично попълва полетата със съществуващите клиентски данни.
Свързването на модел работи за всички полета във формуляра, с изключение на множествения избор. Ето откъс от моята гледна точка:
{{ Form::model($client, ['route' => ['clients.update', $client->id], 'class' => '', 'method' => 'put']) }}
{{ Form::label('name', 'Name', $label_attributes) }}
{{ Form::text('name', null, array('class'=>'form-control')) }}
{{ Form::label('assets', 'Client Benchmarks (Select multiple)', $label_attributes) }}
{{ Form::select('assets[]', $assets, null, array('multiple' => true, 'class' => 'form-control')); }}
Когато изпратя формуляра, връзката запазва данните успешно чрез метода sync
в моя контролер (метод update
):
$client = Client::find($id);
$client->name = Input::get('name');
$assets = Input::has('assets') ? Input::get('assets') : array();
$client->assets()->sync($assets);
$client->save();
Освен това, ако изведа клиентските активи директно, те са достъпни в колекцията от модели в моя изглед на формуляр:
<?php print_r($client->assets); ?>
Как мога да накарам формуляра да попълни полето за избор със съществуващите селекции?