我正在尝试使用此表单在显示表单时填充数据库中的复选框。我一直在寻找和尝试几天,但我找不到答案。
每个区域都有许多工具,连接在数据透视表area_tool
中。
每个"模板"有许多"区域",由名为temparea
的数据透视表连接,字段为id
,area_id
和template_id
。
特定模板中的每个区域都可以包含多个"工具",通过名为temparea_tool
的数据透视表连接,字段为temparea_id
和tool_id
。
通过使用此表单(以及我的控制器功能),我可以为连接到特定区域的所有工具生成一个复选框,并在temparea_tool
中同步这些工具。
但是,我不确定如何让表单填充复选框以显示已为此特定temparea选择了哪些工具。我需要的是从tool_id
为这个特定的temparea传递temparea_tool
作为表单字段中的第三个参数。
编辑: 经过很长时间后,我现在以某种方式设法生成一个可以传递给视图的数组,其中数组键是模板区域,数组值是为此模板区域选择的tool_ids数组。该数组可能如下所示:
array:9 [▼
15 => array:2 [▼
0 => 1
1 => 4
16 => 4
45 => array:2 [▶]
47 => 4
38 => 5
48 => 4
49 => 4
50 => array:2 [▶]
51 => 4
]
因此,我需要一种方法来使用此数组(或其他方式)在加载表单时填充这些复选框。
因此我认为复选框字段的第三个参数我需要检查$ array是否有一个值为$ area-> pivot-> id的密钥,如果此密钥包含值$ tool-> id。如您所见,该数组是一个多维数组。我现在不能做到这一点或它的语法。非常感谢帮助。
表格:
{!! Form::model($template, array('route' => array('temptoolupdate', $template->id), 'method' => 'put')) !!}
{!! Form::hidden('tempid', $template->id) !!}
<ul>
@foreach ($template->area as $area)
<li>
{{$area->title}}
</li>
<ul>
@foreach ($area->tool as $tool)
<li>
{{$tool->title}}
<div class="form-group">
{!! Form::checkbox('temparea' . "[" . $area->pivot->id ."]". "[]", $tool->id, $temparea->tool_id) !!}
</div>
</li>
@endforeach
</ul>
@endforeach
</ul>
<div class="form-group">
{!! Form::submit('Register tools') !!}