【发布时间】:2018-06-17 14:53:17
【问题描述】:
我有一个复选框数组,其中包括一个隐藏的复选框,因此如果未选中复选框,我可以发送一个值 0。
@foreach($records as $record)
<tr>
<td>{{ $record->name }}</td>
<td>{{ $record->id }}</td>
<td>
<input type="hidden" name="record_checkbox[{{ $loop->index }}]" value="0" />
<input type="checkbox" class="form-control name="record_checkbox[{{ $loop->index }}]" value="1" />
</td>
</tr>
@endforeach
我想验证仅在用户提交表单时发送0 或1。
在我的控制器中我尝试过使用这个:
$this->validate($request, [
'record_checkbox[]' => 'integer|boolean|min:0|max:1',
]);
但是当我使用浏览器开发工具,手动将checkbox的value字段更新为100时,它仍然接受它并存储在数据库中。
那么我怎样才能通过适当的验证只允许0 或1?
【问题讨论】:
-
max1:这是一个错字吗?我想应该是max:1 -
但是为什么会有问题呢? Php 将始终将
0视为false,并将所有其他值视为true -
实际上,如果我在复选框的 value 属性中输入一些值,例如 50,100,它实际上存储的是该值而不是 1。
标签: laravel validation laravel-5