如何在Laravel 6中保存布尔值



我有

迁移文件:

public function up()
{
Schema::create('bookings', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->string('name');
$table->string('phone');
$table->boolean('wifi');
$table->string('address');
$table->text('desc');
$table->timestamps();
});
}

BookingController.phpstore方法:

public function store()
{
$booking = new Booking();
$booking->user_id = 1;
$booking->name = request('name');
$booking->phone = request('phone');
$booking->wifi = request('wifi');
$booking->address = request('address');
$booking->desc = request('desc');
$booking->save();
return redirect('/bookings');
}

create.blad.phpwifi复选框的一部分:

<div class="field">
<label for="wifi" class="label">Wi-Fi</label>
<div class="control">
<input type="checkbox" class="form-check" name="wifi" id="address">
<div>
</div>

当我尝试创建一个记录时,我得到了错误:

1( 我试图将一个值保存为FALSE:

Illuminate\Database\QueryException SQLSTATE[23000]:完整性约束冲突:1048列"wifi"不能为null(SQL:insert分为bookings(user_idnamephonewifiaddressdescupdated_atcreated_at(值(1,Dragon,12341234?,asdfasdfasdkf hsadfasdf,asdfasdfas,2020-02-27 07:10:552020-2707:10:55((

2(当我选中Wi-Fi复选框(TRUE值(时,

Illuminate\Database\QueryException SQLSTATE〔22007〕:无效的日期时间format:1366列的整数值"on"不正确kaganatbookings。第1行的wifi(SQL:插入bookings(user_idnamephonewifiaddressdescupdated_atcreated_at(值(1,Dragon,12341234,on,asdfasdfasdkfhsadfasdf,asdfasdfsfafaa,2020-02-27 07:17:15200-02-2707:17:15((

更新:

解决方案:

更新

$booking->wifi = request('wifi');

$booking->wifi = request()->has('wifi');

您可以使用has方法检查值是否已提交,因此您可以插入true或false。

你可以在这里的文档中阅读:https://laravel.com/docs/6.x/requests#retrieving-输入

所以它必须是类似$request->has('wifi')的东西。如果请求中存在值,has方法将返回true。如果此值为true,则可以将true指定给字段,否则为false。这将是我的做法。

如果你需要一个例子,你可以看看这个问题从Laravel 5.8表单中的复选框传递布尔值

相关内容

  • 没有找到相关文章

最新更新