Php 如何使用optgroups laravel将选定项标记为选中的多选下拉列表

Php 如何使用optgroups laravel将选定项标记为选中的多选下拉列表,php,select,laravel,laravel-4,multi-select,Php,Select,Laravel,Laravel 4,Multi Select,我正在使用这个选择下拉插件。在store方法期间,我可以在下拉列表中获取所选项目的所有ID。但是,在编辑方法期间,当我尝试加载具有多个值的实体时,我无法将项目标记为在下拉列表中选中 假设我在学校工作,每个学校都可以属于许多类别,那么这里是联系人和类别之间的归属关系。在“选择”下拉列表“创建”窗体上,我的类别根据它们所属的类型分组在optgroup中。。。我在类型和类别之间有一种单一的关系。。。 下面是我在创建表单上的代码片段 <select class="form-control sele

我正在使用这个选择下拉插件。在store方法期间,我可以在下拉列表中获取所选项目的所有ID。但是,在编辑方法期间,当我尝试加载具有多个值的实体时,我无法将项目标记为在下拉列表中选中

假设我在学校工作,每个学校都可以属于许多类别,那么这里是联系人和类别之间的归属关系。在“选择”下拉列表“创建”窗体上,我的类别根据它们所属的类型分组在optgroup中。。。我在类型和类别之间有一种单一的关系。。。 下面是我在创建表单上的代码片段

<select class="form-control select-picker" name="categories[]" multiple="multiple" title="Choose one or more">
   @foreach ($types as $type)
   <optgroup label="{{ $type->name}}">
     <?php $type_categories = $type->categories;?>
        @foreach ($type_categories as $category)
        <option value="{{ $category->id }}">{{ $category->name }}</option>
        @endforeach
   </optgroup>
   @endforeach

您可以为此使用自定义
表单
扩展名:

Form::macro('categoriesSelect', function ($name, $types, $selected, $attributes) 
{
    $groups = [];

    foreach ($types as $type)
    {
        $groups[$type->name] = $type->categories->lists('name', 'id');
    }

    return Form::select($name, $groups, $selected, $attributes);
});
然后只需提供一组
类型
类别

Form::categoriesSelect(
  'categories[]',
  App::make('Type')->with('categories')->get(),
  $school->categories()->select('categories.id AS id')->lists('id'),
  ['class' => 'form-control select-picker','multiple']
)
注意:我不会在blade模板中调用这些查询,但这是另一回事

Form::categoriesSelect(
  'categories[]',
  App::make('Type')->with('categories')->get(),
  $school->categories()->select('categories.id AS id')->lists('id'),
  ['class' => 'form-control select-picker','multiple']
)