Объект класса SymfonyComponentHttpFoundationParameterBag не удалось преобразовать в строку -laravel 5.8

#laravel #symfony #laravel-5

#laravel #symfony #laravel-5

Вопрос:

Мой код работал нормально, прежде чем протестировать его многими способами, ошибок не было, но внезапно он начал выдавать эту ошибку.

 Object of class SymfonyComponentHttpFoundationParameterBag 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. Было бы полезно, если бы вы могли отметить точную строку, вызывающую эту ошибку

Ответ №1:

В этом заключается опасность доступа к входным данным запроса как к прямым свойствам запроса, вместо использования методов доступа ( input() , get() , и т.д.).

Проблема в том, что attributes на самом деле это публично определенное свойство в запросе. Итак, когда вы получаете доступ $request->attributes , вы получаете доступ не к названному входному значению attributes , а к реальному attributes свойству, которое является Symfony ParameterBag .

Чтобы решить эту проблему, вам необходимо обновить свой код до:

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

Комментарии:

1. сэр, большое спасибо, ваше решение спасло мне день. Большое вам спасибо, я этого не заметил attributes .