我有两个模型通过数据透视表与M:M关系。 User
模型和Group
模型 - 许多用户可能属于多个群组 - 反之亦然。
如何自动填充刀片中的多选?此外,是否真的有必要始终实施$user->groups()->lists('id')
?
<div class="form-group">
{{ Form::label('groups', 'Groups') }}
{{ Form::select('groups[]', $groups, Input::old('groups', $user->groups()->lists('id')), ['class' => 'form-control', 'multiple']) }}
</div>
答案 0 :(得分:1)
要自动填充multi select
中的view
,您可以创建一个View::composer()
,它会在您加载视图时自动将数据传递到视图。您可以使用以下内容创建这样的View :: composer:
View::composer('viewname', function($view)
{
$user = User::with('groups')->findOrFail($userId);
$view->with('user', $user);
});
现在每次加载该视图时都会使用以下内容:
return VIew::make('viewname');
数据($user
)将传递给视图(viewname
),如果您有代码填充视图中的multi-select
,则会自动填充该数据。在视图中,您可以使用以下内容:
{{
Form::select(
'groups[]',
$user->groups,
Input::old('groups', $user->groups()->lists('id')),
['class' => 'form-control', 'multiple']
)
}}