Я хочу отобразить страницу с ошибкой 404, потому что я создал файл error404.php в папке protected/view/system.
По умолчанию у меня есть Sitecontroller, и он содержит функцию действия при ошибке, как показано ниже
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
{
if(Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
внутри основного файла конфигурации он определяется как
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
моя проблема в том, что мне нужно настроить только страницу 404, остальную часть ошибки мне нужно обработать так, как она обрабатывается функцией ошибки sitecontroller. Но я не мог найти способ сделать это. Если предположить, что я удаляю 'errorAction'=>'site/error' из основного файла конфигурации, тогда он показывает ошибку 404, вызывая
throw new CHttpException(404, 'Page not found');
но при этом я могу видеть только страницу без макета, а другие пользовательские ошибки обрабатываются так же, как 404, хотя это не так. Я читал руководство много раз, но я все еще не могу решить эту проблему.