如何将Laravel中的布尔值从表单传递到数据库?

时间:2017-11-08 10:46:59

标签: forms laravel checkbox boolean

我尝试了复选框,当单击复选框时,它会传递on。是否无法从laravel中的表单传递laravel中的布尔值?..

6 个答案:

答案 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。

完全正确/错误也可以

老实说。我认为这不是最佳做法。这是一个非常简洁易懂的解决方法。