Объект класса Symfony \ Component \ HttpFoundation \ ParameterBag не может быть преобразован в строку -laravel 5.8 - PullRequest
0 голосов
/ 14 апреля 2019

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

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 Ответ

2 голосов
/ 15 апреля 2019

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

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

.проблема, вам нужно обновить код:

$product->attr_id = $request->input('attributes');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...