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

Я хочу выполнить запрос "SELECT * FROM users WHERE author = 'mubeen' && name LIKE '%query%'" Но я не получаю результаты успешно. Получение этой ошибки

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

Я ищу в Google различные стратегии запросов для получения данных, но ничего не получаю.

Вот мой контроллер

usersController.php

public function searchingResults(Request $request)
{
    $query = $request->query;

    $users  = User::where([
      ['author', 'mubeen'],
      ['name' ,'LIKE','%'.$query.'%'],
    ])->orderBy('created_at','desc')->paginate(4);   

    $roles  = Role::where(
        'author' , 'superAdmin'
    )->get();

    return view('BackEnd.users.searchResults',compact('users','query'));
}

если я поставлю "% $ query%" я не получаю ошибки, но также не получаю результатов, даже если я ставлю то же имя, что и в таблице БД. Пожалуйста, помогите мне, я задаю вопросздесь, после того, как я потратил 4-5 часов в других местах.

Спасибо

Это моя структура таблицы базы данных

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018

Вы пробовали это?:

$users = User::where('author', 'mubeen')
           ->where('name' ,'LIKE', '%'.$query.'%')
           ->orderBy('created_at','desc')
           ->paginate(4);   
0 голосов
/ 25 декабря 2018

Я решил эту проблему, просто изменив имя атрибут из name = "query" на name = "q".

Я не знаю, чтопроблема была с name = "query", иначе все то же самое.

Так что я бы посоветовал вам не использовать '%'. $ userInput. '%' Я пробовал это, ноэто ничего не дает в качестве результата поиска на мой взгляд.

, если я использую "%". $ userInput. "%" в предложении where и изменил атрибут name, все отлично работает для меня:)

0 голосов
/ 25 декабря 2018

попробуйте

$users = User::where('author', 'mubeen')
               ->where('name' ,'LIKE', "%{$query}%")
               ->orderBy('created_at','desc')->paginate(4);   

убедитесь, что пространство имен Requset равно Illuminate\Http\Request;

проверьте вашу форму, убедитесь, что это метод записи

проверьте имяполе ввода (запрос) в вашей форме

...