我尝试了复选框,当单击复选框时,它会传递on
。是否无法从laravel中的表单传递laravel中的布尔值?..
答案 0 :(得分:3)
在模型中定义eloquent mutator这样的http://docs.woothemes.com/document/endless-:
\App\MyModelName.php
其中“XXX”是数据库列的驯服。
如果复选框的值为“on”,属性xxx将设置为public function setXXXAttribute($value)
{
$this->attributes['xxx'] = ($value=='on');
}
答案 1 :(得分:2)
提交表单时,请选中复选框<input type="checkbox" name="checkbox_name" id="checkbox" value="true"/>
的值。然后,这将通过表单数据传递。
{{1}}
答案 2 :(得分:2)
我在laravel中使用了雄辩的变异器来解决这个问题......
public function setOpenTodayAttribute($value)
{
$this->attributes['open_today'] = ($value=='on')?($value=1):
($value=0);
}
如果值在i上,则选中$value=='on' it will be set to
1 which is
*boolean* else it will be set to 0
,这是假的
答案 3 :(得分:0)
在表单中添加
{!! Form::checkbox('checkbox_name', '1'); !!}
单击checkbox_name时,您可以通过'checkbox_name'从$request->all()
数组中获取值。
或
$checked = $request->has('checkbox_name')
答案 4 :(得分:0)
你的意思是模特的属性转换吗? https://laravel.com/docs/5.5/eloquent-mutators
答案 5 :(得分:0)
我需要发送真实的true或false,因为验证方法不会接受true或不接受任何东西。这就是我所做的。
<input type="hidden" name="myBoolean" value="0">
<input type="checkbox" name="myBoolean" value="1">
以上返回0
如果选中此复选框,则DOM如下所示
<input type="hidden" name="myBoolean" value="0">
<input type="checkbox" name="myBoolean" value="1" checked>
现在,第二个具有相同名称的命名元素将覆盖第一个,并返回1。
完全正确/错误也可以
老实说。我认为这不是最佳做法。这是一个非常简洁易懂的解决方法。