Php Laravel 5:从相关模型填充复选框
我试图让这个表单在显示表单时填充数据库中的复选框。我已经搜索和尝试了好几天,但我找不到答案 每个区域都有许多工具,连接在数据透视表区域中 每个模板都有许多区域,由一个名为temparea的透视表连接,其中包含字段id、区域id和模板id 特定模板中的每个区域都可以有许多工具,通过名为temparea_tool的透视表连接,该透视表具有temparea_id和tool_id字段 通过使用此表单和我的控制器功能,我能够为连接到特定区域的所有工具生成一个复选框,并在temparea_tool中同步这些工具 但是,我非常不确定如何让表单填充复选框,以显示已为此特定区域选择了哪些工具。我需要的是从temparea工具中为这个特定temparea传递tool_id,作为表单字段中的第三个参数 编辑: 经过更多的时间后,我现在设法生成了一个数组,可以传递给视图,其中数组键是模板区域,数组值是为该模板区域选择的工具ID数组。阵列可以如下所示:Php Laravel 5:从相关模型填充复选框,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图让这个表单在显示表单时填充数据库中的复选框。我已经搜索和尝试了好几天,但我找不到答案 每个区域都有许多工具,连接在数据透视表区域中 每个模板都有许多区域,由一个名为temparea的透视表连接,其中包含字段id、区域id和模板id 特定模板中的每个区域都可以有许多工具,通过名为temparea_tool的透视表连接,该透视表具有temparea_id和tool_id字段 通过使用此表单和我的控制器功能,我能够为连接到特定区域的所有工具生成一个复选框,并在temparea_tool中同步这些
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') !!}
如果你有$temparea->tool\u id,你应该在数组$tool->id中有类似的东西,$seltemparea?对:错。当然,你需要建立$seltemp区域。谢谢,但我已经尝试过了。然后问题是,如果该工具存在于阵列中,则将对所有区域进行检查。我需要一种方法来搜索数组中键temparea_id和值tool_id的组合,这是一个多维数组,因为temparea可能有很多工具。查看上面的数组。好的,我已经用它作为复选框的第三个参数:array_key_exists$area->pivot->id,$array&&&$array[$area->pivot->id]==$tool->id只要一个区域只选择了一个工具,它就可以工作。如果一个区域与多个工具关联,则所有框均未选中。