Объект класса Symfony \ Component \ HttpFoundation \ ParameterBag не может быть преобразован в строку - PullRequest
0 голосов
/ 28 июня 2018

Версия (версии) Symfony: ~ 4.0

Описание Я использую laravel (5.6. *) И пишу простой красноречивый запрос следующим образом.

$query = "something";
$products = Product::
where('title', $query)
->paginate($limit);

Но я получаю "Объект класса Symfony \ Component \ HttpFoundation \ ParameterBag не может быть преобразован в строку"

Вчера все работало отлично, а сегодня я не знаю, что случилось. Пожалуйста, помогите мне с этим. Я предоставляю простые функции поиска по этому запросу.

Пожалуйста, проверьте снимок экрана для получения дополнительной информации. enter image description here

Обновление

Пожалуйста, посмотрите на новый код, но вам все равно не повезло.

function get(Request $request) {
        $limit = 10;
        $query = "";
        if ($request->has('limit')) {
            $limit = $request->limit;
        }
        if ($request->has('query')) {
            $query = $request->query;
        }

        $products = Product::
                where('title','like', '%'.$query.'%')
                ->orWhere('variant_title', 'like', '%'.$query.'%')
                ->orWhere('variant_sku', 'like', '%'.$query.'%')
                ->orWhere('tags', 'like', '%'.$query.'%')
                ->paginate($limit);


        $products = $products->withPath('/products');
        return $products;
    }

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

О человек после долгих часов отладки, наконец, я обнаружил, что
Вы не можете использовать ключ запроса для запроса, так как он используется в пакете.

Я чувствую, что они должны упомянуть параметры, которые они использовали в классах.

Итак, окончательный код будет таким:

function get(Request $request) {
    $limit = 10;
    $str = "";
    if ($request->has('limit')) {
        $limit = $request->limit;
    }
    if ($request->has('str')) {
        $str = $request->str;
    }

    $products = Product::
            where('title','like', '%'.$str.'%')
            ->orWhere('variant_title', 'like', '%'.$str.'%')
            ->orWhere('variant_sku', 'like', '%'.$str.'%')
            ->orWhere('tags', 'like', '%'.$str.'%')
            ->paginate($limit);


    $products = $products->withPath('/products');
    return $products;
}
0 голосов
/ 28 июня 2018

Похоже, ваш $query не строка, а объект класса Symfony\Component\HttpFoundation\ParameterBag. Это исходит от Request? Попробуйте получить из него значение, что-то вроде:

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