Laravel 5:从相关模型填充复选框

时间:2015-05-19 11:42:06

标签: php laravel laravel-5

我正在尝试使用此表单在显示表单时填充数据库中的复选框。我一直在寻找和尝试几天,但我找不到答案。

每个区域都有许多工具,连接在数据透视表area_tool中。

每个"模板"有许多"区域",由名为temparea的数据透视表连接,字段为idarea_idtemplate_id

特定模板中的每个区域都可以包含多个"工具",通过名为temparea_tool的数据透视表连接,字段为temparea_idtool_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') !!}

0 个答案:

没有答案