2014-07-20 49 views
0

我想填充一个'编辑表单'与我应该从数据透视表中获取的数据。Laravel 4 - 填充表单选择多个数据透视表

我在编辑一个名为'Actividad'的东西。而'Actividad'有一些'材料'。 “创建”(ACTIVIDAD)形式的正常工作,但我不能用我的“编辑”的形式处理...

我的编辑形式:

{{ Form::label('material_id', 'Material necesario:') }} 
{{ Form::select('material_id[]', $material_id, Input::old('material_select'), array('multiple')) }} 

在我的控制器我有这样的:

$material_id = DB::table('materials')->orderBy('nombre', 'asc')->lists('nombre', 'id'); 

有了这个,我将每个'材料'存储在我的数据库中。但我认为我需要一些代码来传递给我的表单一个变量,只有与这个'Actividad'相关的材料...

有关如何获取这些数据以及如何在我的表单中使用它的任何想法?

预先感谢您!

回答

1

对于belongsToMany你需要加载相关的收集和调用它lists

// assuming relation materials on Actividad model: 
$actividad->materials->lists('nombre','id'); 

hasMany关系,你可以这样做:

$model->relation()->lists('name','id'); 

后者将节省您加载的模型集合,但不幸的是,目前没有办法使其与透视表一起工作。


实际上,您只想获取所选选项的数据,对吗?

然后:

$selected = $actividad->materials->lists('id'); 
+0

非常感谢!它工作完美。但我怎么做才能显示所选的选项?我想要显示所有的选项,但选择已选择的选项,如选择...我不知道我是否足够清楚...:S – JaviZu

+0

将'$ selected'数组传递给'Form ::'的第三个参数。选择' –

+0

我已经完成了 – JaviZu

相关问题