首页 > 解决方案 > 从控制器传递布尔值以存储表单数据的正确方法

问题描述

我是 laravel 的新手,不知道我做错了什么。每当我尝试提交表单时,我都会遇到此“Symfony\Component\Debug\Exception\FatalThrowableError 语法错误,意外'='”。

这是在我的 create.blade.php

<div class="form-check">
  <input class="form-check-input" type="checkbox" value="1" id="#is_available?" name="is_available?">
  <label class="form-check-label" for="is_available?">
    Is this available and ready to be rented?
  </label>
</div>

在我的 CarsControllers.php

public function store(Request $request)
{
    $car = new car;

    $car->car_brand = $request->car_brand;
    $car->car_name = $request->car_name;
    $car->description = $request->description;
    $car->car_type_id = $request->car_type_id;
    $car->image_location = '';
    $car->is_available? = $request->is_available?;


    $car->save();

    return redirect('/selections');

}

其余的都可以,除了那个布尔值。我不知道该怎么办。我的列名是“is_available?” 我必须改变它吗?

标签: phplaravel-5

解决方案


您必须将您的表单变量重命名为,name="is_available"因为?引号之外只会被解释为速记三元(您可以查看此博客文章以获取更多Stitcher - PHP 中的速记比较

此外,在您的控制器中,您需要删除?此语句中的所有内容$car->is_available? = $request->is_available?;

最后,如果您的数据库字段也是is_available?,您也需要删除它?


推荐阅读