vitaly_74
@vitaly_74

Можно ли в Yii2 указать парсер JSON для определенного экшена/экшенов?

public function behaviors()
    {
        return [
            'verbs' => [
                'class' => \yii\filters\VerbFilter::className(),
                'actions' => [
                    'index'  => ['GET'],
                    'truck'   => ['POST', "DELETE"],
                    'polygon'   => ['POST', "DELETE"],
                    'marker'   => ['POST', "DELETE"],
                    'line-string'   => ['POST', "DELETE"],
                ],
            ],
        ];
    }

мне хотелось бы на все экшены кроме index поставить парсер 'application/json' => 'yii\web\JsonParser'
сейчас в конкретном экшене я делаю так:
Yii::$app->request->parsers = [
            'application/json' => 'yii\web\JsonParser'
        ];
        Yii::$app->response->format = Response::FORMAT_JSON;
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
public function behaviors()
 {
     return [
        [
             'class' => 'yii\filters\ContentNegotiator',
             'only' => ['view', 'index'],  // in a controller
             // if in a module, use the following IDs for user actions
             // 'only' => ['user/view', 'user/index']
             'formats' => [
                 'application/json' => Response::FORMAT_JSON,
             ],
             'languages' => [
                 'en',
                 'de',
             ],
         ],
     ];
 }

Class yii\filters\ContentNegotiator
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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