Как можно задать сценарий или определить action страницы в fields() (REST) (Yii2)?

Мне нужно каким то образом выводить разные поля для разных Екшенов ( REST)

// explicitly list every field, best used when you want to make sure the changes
    // in your DB table or model attributes do not cause your field changes (to keep API backward compatibility).
    public function fields()
    {

        return [
            // field name is the same as the attribute name
            'user_id','name', 'email','gender','age','image'

        ];
    }


Сейчас разрешено только эти поля, хочу для определенного Екшена добавить или убрать поле из этого списка.
Как можно это сделать?
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 1
@matperez
Можно попробовать так:
$action = Yii::$app->requestedAction; 
        if ($action->id === 'form' && $action->controller->id === 'default') {
            return [...];
        } else {
            return [...];
        }

Мне кажется, архитектурно, не совсем правильно, что модель знает о том, в каком экшене она вызывается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы