无法将Symfony \ Component \ HttpFoundation \ ParameterBag类的对象转换为字符串-laravel 5.8

时间:2019-04-14 19:23:15

标签: laravel symfony laravel-5

我的代码在通过多种方式进行测试之前运行良好,但没有出现错误,但是突然开始出现此错误。

Object of class Symfony\Component\HttpFoundation\ParameterBag could not be converted to string

不知道为什么我在保存记录时没有使用任何查询的原因。

$product = new Product();

    $product->name = $request->name;
    $product->description = $request->description;
    $product->short_description = $request->short_description;
    $product->brand_id = $request->brand;
    $product->cat_id = $request->categories;
    $product->attr_id = $request->attributes;
    if ($request->is_active) {
        $product->is_active = 1;
    } else {
        $product->is_active = 0;
    }
    $product->save();

任何帮助将不胜感激。预先谢谢你。

1 个答案:

答案 0 :(得分:2)

这是将请求输入数据作为请求的直接属性而不是使用访问方法(input()get()等)进行访问的危险。

问题在于attributes实际上是请求上的公开定义的属性。因此,当您访问$request->attributes时,您没有访问名为attributes的输入值,而是访问了真实的attributes属性,即Symfony ParameterBag。 / p>

要解决此问题,您需要将代码更新为:

$product->attr_id = $request->input('attributes');