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

时间:2018-12-25 10:31:55

标签: laravel eloquent wildcard where-clause

我想运行查询"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%” ,即使我输入与db表相同的名称,我也不会出错,也不会得到任何结果。请帮助我,我在浪费之后在这里提出问题我在其他地方的4-5个小时。

谢谢

This is my db table structure

3 个答案:

答案 0 :(得分:0)

尝试

Department 1

确保Requset的名称空间为12

检查您的表单,确保它是发布方法

检查表单中输入字段(查询)的名称

答案 1 :(得分:0)

您尝试过这个吗? :

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

答案 2 :(得分:0)

我通过将 name =“ query”的名称 attribute 更改为name =“ q”来解决了这个问题。

我不知道问题是name =“ query”,否则一切都一样。

因此,我建议您不要使用'%'。$ userInput。'%',但我没有得到任何结果作为搜索结果。

如果我在where子句中使用“%”。$ userInput。“%”并更改了name属性,对我来说一切正常:)