Ответ REST API провайдера массива данных - PullRequest
0 голосов
/ 06 февраля 2020

Я разрабатываю API, чтобы получить всех пользователей

URL-адрес

v1/users?fields=id,full_name

Вот код

 public function actionIndex() {
    $provider =  new ArrayDataProvider([
     'allModels' => User::find()->all(),
     'sort' => [
         'attributes' => ['id'],
     ],
     'pagination' => [
        'pageSize' => 10,
        ],
    ]);

    return $provider;
}

Выходное значение

 [
{
    "id": 4,
    "full_name": "Shahid admin"
},
{
    "id": 6,
    "full_name": "First client"
}
]

Но когда я изменяю выход в другом формате:

return (new ApiResponse)->success(['user' => $provider], ApiResponse::success);

, тогда вывод меняется ie дает мне весь объект пользовательской модели и пагинация не работает

{
    "name": "Success",
    "message": "Success",
    "code": 200,
    "status": "",
    "type": "Response",
    "models": {
        "user": {
            "key": null,
            "allModels": [
                {
                    "id": 6,
                    "full_name": "First client",
                    "profile_image_id": null,
                    "profile_image": null,
                    "isverify": 1
                },
                {
                    "id": 7,
                    "full_name": "Eng instrcutor",
                    "profile_image_id": null,
                    "profile_image": null,
                    "isverify": 1
                },
...