Здравствуйте, пытаюсь сейчас сделать шаблон для разработки REST API на Yii2, взял за основу шаблон advanced, хочу добавить во все контроллеры приложения api (так же ранее создал приложение api(на равне с backend, frontend, console)) фильтр ContentNegotiator, который форматировал бы все ответы в JSON строку, но дублировать в каждом контроллере метод behaviours с этим фильтром не хочется, по этому добавил ContentNegotiator в файл конфигурации, в свойство bootstrap, но теперь, если я пытаюсь обратиться к не существующей ссылку, в место того что бы перейти по пути site/error(ранее заготовил action на случай отсутствия url), но в место того что бы обратиться к site/error, он выкидывает что то свое, как это можно исправить? (ниже написал конфигурацию приложения, и прикрепил то что он выдает)
P.S У меня указан в конфигурационном файле компонент errorHandler, и если убрать из bootstrap ContentNegotiator, то вывод ошибки об отсутствие метода будет виден корректно
Код конфигурационного файла приложения api:
<?php
use yii\filters\ContentNegotiator;
use yii\web\Response;
$params = array_merge(
require __DIR__ . '/../../common/config/params.php',
require __DIR__ . '/../../common/config/params-local.php',
require __DIR__ . '/params.php',
require __DIR__ . '/params-local.php'
);
return [
'id' => 'api',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\controllers',
'bootstrap' => [
'log',
[
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
]
],
],
'modules' => [],
'components' => [
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser'
]
],
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => false,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
'<action:\w+>' => 'site/<action>',
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
],
'params' => $params,
];
Вот то что выдает страница ошибки с включенным в bootstrap ContentNegotiator: