【问题标题】:Laravel: How to save checkbox valueLaravel:如何保存复选框值
【发布时间】:2021-01-10 08:41:47
【问题描述】:

我在提交表单时收到此错误

SQLSTATE[23000]:违反完整性约束:1048 列“onloan”不能为空

请帮忙。对不起菜鸟问题。我一直在搜索,但示例不同。

edit.blade.php

<div class="form-group">
  <input type="checkbox" class="" id="onloan" value="1" {{ $item->onloan == 1 ? 'checked' : '' }}>
  <label for="onloan">On Loan</label>
</div>

控制器

    public function update(Request $request, Item $item)
    {
        $item->update([
            'name' => $request->name,
            'description' => $request->description,
            'barcode' => $request->barcode,
            'onloan' => $request->onloan //Not Working
        ]);
    }

【问题讨论】:

  • 在您的输入字段上添加name="onloan",否则它不会通过表单提交方法传递数据。 &lt;input type="checkbox" class="" name="onloan" id="onloan" value="1" {{ $item-&gt;onloan == 1 ? 'checked' : '' }}&gt; 然后从你的控制器'onloan' =&gt; ($request-&gt;onloan) ? '1' : '0';
  • 谢谢!对此,我真的非常感激。对不起,我的水平太低了。我不能赞成你的评论。如果你把它放在答案中,我可以勾选它。再次感谢!

标签: laravel checkbox


【解决方案1】:

在你的输入框添加name="onloan",否则它不会通过表单提交方法传递数据。

<input type="checkbox"  class="" name="onloan" id="onloan" value="1" {{ $item->onloan == 1 ? 'checked' : '' }}>

如果您取消选中该复选框,则提交时它不会发送任何内容,因此如果未传递值,您可以从您的控制器中提供一个值 (0):

'onloan' => ($request->onloan) ? '1' : '0';

或者,

if(isset($request->onloan)) {
  $onloan = "1";
} else {
  $onloan = "0";
}

'onloan' => $onloan,

【讨论】:

  • 啊。非常感谢您的解释。我一直在弄清楚它是如何工作的。这太棒了!
猜你喜欢
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 2018-02-20
  • 2014-07-31
相关资源
最近更新 更多