在Laravel 4中设置多选对象的选定项目

时间:2015-01-21 09:52:47

标签: php html dom laravel laravel-4

我的项目是关于商店属于许多部分。 创建商店时,会在多选列表中选择(选择)部分,并正确保存值。此外,在编辑信息时,用户可以正确保存更改。问题在于:在编辑形式中,多选对象是清晰的(根本没有选择任何项目),而我们需要根据预先保存的数据设置选项,以便用户可以查看和修改它。

控制器中的

我选择这样的列表:

 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  :-(

1 个答案:

答案 0 :(得分:2)

首先,如果您的列表中没有这些ID,您显然无法使用array(1,2)来测试它。代替:

{{ Form::select('shop_sections[]', $sectionslst, array(13, 14), array ('multiple' => 'multiple' ))}}

现在真正的问题是$data->sections是一个雄辩的模型集合。但是Form::select需要一组键。您可以使用lists()

解决此问题
$data->sections->lists('id')