У меня есть много для многих отношений между clients
и assets
. Для моей клиентской формы редактирования у меня есть окно с несколькими выборами, с помощью которого пользователь может выбрать несколько assets
для присоединения к клиенту. Форма использует привязку к модели, поэтому она автоматически заполняет поля существующими данными клиента.Laravel форма привязки модели для многих до многих выбрать вход
Работа с привязкой к модели для всех полей в форме, кроме мульти-select. Вот отрывок из моего зрения:
{{ 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();
Кроме того, если выход I клиентские активы, непосредственно они доступны в коллекции модели с моей точкой зрения формы:
<?php print_r($client->assets); ?>
Как я могу получить форму для заполнения поля выбора с го Существующие выборы?
Да, это не идеально, так как было бы неплохо иметь возможность использовать привязку модели ко всем полям в форме. Похоже, мне нужно вручную передать выбранные значения методу 'select()'. – harryg
Боюсь, что я согласен с тем, что это не имеет большого смысла, но было бы непросто передать массив активных «активных» значений –
Действительно, хотя мне нужно сделать что-то вроде 'array_pluck ($ client- > assets-> toArray(), 'id') ', что не совсем самая элегантная вещь. – harryg