Невозможно использовать объект типа Illuminate \ Support \ Facades \ Request в качестве массива - PullRequest
0 голосов
/ 15 мая 2019

У меня проблема с запросом, который я делаю для 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 ]

2 голосов
/ 16 мая 2019

Вы пытаетесь получить параметры запроса неправильно. Из документации :

Получение входных данных из строки запроса

Хотя метод ввода извлекает значения из всей полезной нагрузки запроса (включая строку запроса), метод query будет извлекать только значения из строки запроса:

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

Попробуйте так:

$pseudo = $request->query('pseudo');
$perpage = $request->query('perpage');
1 голос
/ 16 мая 2019

Если вы хотите получить доступ к параметрам запроса в виде массива, вам нужно изменить:

use Illuminate\Support\Facades\Request;

Кому:

use Illuminate\Http\Request;

Если вы не можете прекратить использование фасада, альтернативой будет использование instance. Вам больше не понадобится аргумент:

public function getListUser()
{
    $request = Request::instance();
    $pseudo = $request["pseudo"];
    $perpage = $request["perpage"];
    ...
}
1 голос
/ 16 мая 2019

использование

$pseudo = $request->pseudo;
$perpage = $request->perpage;
0 голосов
/ 16 мая 2019

Используйте метод Input Facade get

use Illuminate\Support\Facades\Input;


$pseudo = Input::get('pseudo');
$perpage = Input::get('perpage');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...