在 Laravel 4 中设置多个 select 对象的 selected 项
Set selected items of multiple-select object in Laravel 4
我的项目是关于商店的,属于很多部分。
创建商店时,在多 select 列表中选择(selected)部分并正确保存值。此外,在编辑信息时,用户可以正确保存更改。问题在于:在编辑表单中,multi-select 对象是清晰的(根本没有项目被 selected),而我们需要根据预先设置的选项进行 selected已保存数据,因此用户可以查看和修改它。
在控制器 I select 中这样列出:
public function edit($id)
{
$data = Shops::with('sections')->where('id', '=', $id)->get();
$sectionslst = Sections::lists('section_name','id');
return View::make('admin.shops.edit')->with('data',$data)
->with('sectionslst', $sectionslst );
}
并且我以这种方式在我的视图中填充数据
{{Form::label('shop_section','الاقسام') }}
{{ Form::select('shop_sections[]', $sectionslst, array (1, 2), array ('multiple' => 'multiple' ))}}
//I'm using array(1, 2) just to try how it works, but it doesn't, all items still un-selected :-(
首先,如果您的列表中没有这些 ID,您显然不能使用 array(1,2)
来测试它。相反:
{{ Form::select('shop_sections[]', $sectionslst, array(13, 14), array ('multiple' => 'multiple' ))}}
现在真正的问题是 $data->sections
是一个 Eloquent 模型集合。但是 Form::select
需要一个键数组。您可以使用 lists()
来解决这个问题
$data->sections->lists('id')
我的项目是关于商店的,属于很多部分。 创建商店时,在多 select 列表中选择(selected)部分并正确保存值。此外,在编辑信息时,用户可以正确保存更改。问题在于:在编辑表单中,multi-select 对象是清晰的(根本没有项目被 selected),而我们需要根据预先设置的选项进行 selected已保存数据,因此用户可以查看和修改它。
在控制器 I select 中这样列出:
public function edit($id)
{
$data = Shops::with('sections')->where('id', '=', $id)->get();
$sectionslst = Sections::lists('section_name','id');
return View::make('admin.shops.edit')->with('data',$data)
->with('sectionslst', $sectionslst );
}
并且我以这种方式在我的视图中填充数据
{{Form::label('shop_section','الاقسام') }}
{{ Form::select('shop_sections[]', $sectionslst, array (1, 2), array ('multiple' => 'multiple' ))}}
//I'm using array(1, 2) just to try how it works, but it doesn't, all items still un-selected :-(
首先,如果您的列表中没有这些 ID,您显然不能使用 array(1,2)
来测试它。相反:
{{ Form::select('shop_sections[]', $sectionslst, array(13, 14), array ('multiple' => 'multiple' ))}}
现在真正的问题是 $data->sections
是一个 Eloquent 模型集合。但是 Form::select
需要一个键数组。您可以使用 lists()
$data->sections->lists('id')