在编辑模式下选中所有复选框

时间:2014-11-11 00:14:08

标签: laravel laravel-4

我有一个创建/编辑表单

@if(isset($vendor))
  {{ Form::model($vendor,array('route' => 'vendor-edit'))}}
@else
  {{ Form::open(array('route' => 'vendor-post'))}}

在此表单中我列出了一个复选框

    @foreach ($locations as $location)
      <div style='display:none' class="{{$location['state']['state']}}">
            {{Form::checkbox('city[]',$location['id'])}}{{$location['city']}}
      </div>
    @endforeach

我注意到在编辑模式下正在检查所有内容。似乎它的名字是'city []'有问题。

1 个答案:

答案 0 :(得分:0)

您的代码表示对于每个位置,如果$location->city具有任何值,则应将名为city[]的复选框标记为已选中(因为city中的任何非空或非零值将评估为true)。

将复选框的名称从city[]更改为true中包含false / locations值的字段,该字段应确定复选框的状态;或者,将名称从city[]更改为其他内容(因此模型表单绑定不会尝试根据$location->city进行设置)并通过设置第3个来设置checkedForm::checkboxtrue / false的参数,基于其他字段的值:

{{ Form::checkbox('thecity[]', $location->id, $location->other_field > 0 ) }}