Laravelcollective中的表单模型绑定,默认选中的复选框永远不会显示未选中状态

时间:2017-09-08 10:41:21

标签: laravel checkbox laravel-5 laravelcollective

Laravel 5.5,Laravelcollective 5.4

在我的编辑页面上,无论数据库中的状态如何,该复选框始终显示为已选中。 (已经确认它没有默认选中的情况下按预期工作。)

我为创建路径使用相同的表单字段,并希望检查默认值。

 {{ Form::model($client, ['route' => ['clients.update', $client->id], 'method' => 'patch']) }}
 {{ Form::checkbox('active', 'Yes', true) }}
 {{ Form::close() }}

1 个答案:

答案 0 :(得分:1)

根据documentation on form model binding

  

所以,优先级如下:

     
      
  1. 会话Flash数据(旧输入)
  2.   
  3. 明确传递值
  4.   
  5. 模型属性数据
  6.   

请注意,显式的Passed Value似乎不是默认的回退,而是提供的实际值(无论模型如何)。因此,这似乎是预期的行为。

更新:正如评论中所讨论的那样,在没有使用模型集的情况下允许回退值的解决方案:

{{ Form::checkbox('active', 'Yes', isset($client)?null:true) }}