Как отфильтровать поля в rest связанных моделей?

Всё что касается построения API
Ответить
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Как отфильтровать поля в rest связанных моделей?

Сообщение user »

Есть код:

Код: Выделить всё

    public function fields()
    {
        return [
            'field' => 'field',
        ];
    }
    
    public function extraFields()
    {
        return [
            'users',
        ];
    }
возвращается:
{
"field": "field",
"users": {
"id": 1,
"name": "user"
}
}
мне не нужен id
если сделаю так:

Код: Выделить всё

    public function extraFields()
    {
        return [
            'users' => function($model){
                return [
                    'name' => $model->users->name,
                ];
            }
        ];
    }
то вернется:
{
"field": "field",
"users": {
"name": null
}
}
как мне заполнить это поле? или как настроить фильтрацию вывода полей из связанной таблицы?
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как отфильтровать поля в rest связанных моделей?

Сообщение Nex-Otaku »

Код: Выделить всё

$models = MyModels::find()->with('users')->all();
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Как отфильтровать поля в rest связанных моделей?

Сообщение user »

Nex-Otaku писал(а): 2017.12.06, 10:33

Код: Выделить всё

$models = MyModels::find()->with('users')->all();
спасибо, но куда это вставлять?

Код: Выделить всё

public function extraFields()
    {
$models = MyModels::find()->with('users')->all();
        return [
            'users' => function($model){
                return [
                    'name' => $model->users->name,
                ];
            }
        ];
    }
не работает
Ответить