Здравствуйте, у меня в yii2 есть 2 контроллера, один работает на веб сайта, а второй на REST API, и вопрос, как мне обработать по разному 404, что бы на контроллере API выводить JSON строку о том что метод не найден, а на контроллере веб сайта страницу 404? (метод actionError не помогает)
Контроллер веб =>
class AdminController extends \yii\web\Controller
{
public function beforeAction($action)
{
if(!(\Yii::$app->session->has('is_admin'))) {
$this->layout = null;
$this->action->actionMethod = 'actionEnterAdmin';
}
return parent::beforeAction($action);
}
/* Вот этот контроллер должен сработать если не найдена страница по идеи... */
public function actionError() {
$this->render('error');
}
}
Контроллер Api =>
class ApiController extends \yii\web\Controller
{
/* Вот этот контроллер должен сработать если не найдена страница по идеи... */
public function actionError() {
\Yii::$app->response->format = Response::FORMAT_JSON;
return [
'error' => [
'code' => 404,
'text' => 'method is not found'
]
];
}
}
Все файлы контроллеров находятся в папке controllers.
P.S Отключил в конфигурации web.php свойство errorHandler