Laravel 4 - 使用数据透视表填充表单选择倍数

时间:2014-07-20 11:38:35

标签: database forms select laravel-4 pivot-table

我试图填充“编辑”表单'我应该从数据透视表中获取数据。

我正在编辑名为' 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 个答案:

答案 0 :(得分: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');