无法将类型为Illuminate \ Support \ Facades \ Request的对象用作数组

时间:2019-05-15 20:48:13

标签: php laravel laravel-5 request

我对api发出的请求有问题,我想要这样的json返回:

{
    "message": "OK",
    "data": [
        User,
        ...
    ],
    "pager": {
        "current": integer,
        "total": integer
    }
}

这是我的数据库中的用户列表。

我使用邮递员,我无法真正理解我尝试使用google找到解决方案的问题,但没有任何具体说明。所以我想知道我在做什么错。

public function getListUser(Request $request)
{

    $pseudo = $request["pseudo"];
    $perpage = $request["perpage"];
    $users = User
         ::select('username','pseudo','id','email')
         ->where('pseudo','LIKE',$pseudo.'%')
         ->paginate($perpage);

    return response()->json([
            'message'=>'OK',
            'data'=>$users->items(),
            'current'=>$users->currentPage(),
            'total' => $users->lastpage()
            ]
     ,200);
}

我尝试获取参数:

enter image description here

4 个答案:

答案 0 :(得分:2)

您正在尝试错误地获取查询参数。来自documentation

  

从查询字符串中检索输入

     

虽然输入法从整个请求有效载荷中检索值   (包括查询字符串),query方法将仅检索   查询字符串中的值:

$name = $request->query('name');

尝试这种方式:

$pseudo = $request->query('pseudo');
$perpage = $request->query('perpage');

答案 1 :(得分:1)

使用

$pseudo = $request->pseudo;
$perpage = $request->perpage;

答案 2 :(得分:1)

如果要以数组形式访问请求参数,则需要更改:

use Illuminate\Support\Facades\Request;

收件人:

use Illuminate\Http\Request;

如果您不能停止使用外墙,则可以使用instance。您将不再需要参数:

public function getListUser()
{
    $request = Request::instance();
    $pseudo = $request["pseudo"];
    $perpage = $request["perpage"];
    ...
}

答案 3 :(得分:0)

使用Input Facade get方法

use Illuminate\Support\Facades\Input;


$pseudo = Input::get('pseudo');
$perpage = Input::get('perpage');