Ответы пользователя по тегу RESTful API
  • Как в yii2 разделить массив полей в Model::fields() для разных случаев?

    syamskoy
    @syamskoy
    Сценарий можно задать, но выглядит это так себе:
    $activeDataProvider = new ActiveDataProvider([
                'query' => Post::find(),
                // 'scenario' => Post::SCENARIO_INDEX, // Это так не работает :(
            ]);
    foreach($activeDataProvider->getModels() as $model) {
        $model->scenario = Post::SCENARIO_GUEST;
    }


    Если отдача нужных полей - это не часть безопасности, а просто удобство, то все же лучше через url нужные запрашивать. Если это разделение доступа, то вместо сценариев можно использовать правила RBAC для отдачи нужных полей. Если это тоже не подходит - то уже наследование и переопределение. Но есть еще один вариант, правда с сценариями никак не связан: можно в селекте указать нужные поля: Post::find()->select(['id']).
    Ответ написан