Quiero mostrar la página de error 404 para eso he hecho el archivo error404.php en mi carpeta protected/view/system.YII cómo manejar la página de error 404 personalizada junto con otras páginas de error
Por defecto que tengo Sitecontroller y contenía función de acción de error de la siguiente manera
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
{
if(Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
dentro config archivo principal se define como
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
mi problema es que tengo que personalizar la página 404 solamente, el resto del error necesito manejar la forma en que lo maneja la función de error del controlador del sitio. Pero no pude encontrar una manera de hacer eso. Si supongo quito 'errorAction' => 'sitio/error', de la configuración principal, entonces sí muestra el error 404 llamando
throw new CHttpException(404, 'Page not found');
pero haciendo que sólo puedo ver la página sin la disposición también otros errores personalizados se tratan igual que 404 mientras que no lo son. Leí el manual muchas veces, pero todavía no puedo resolverlo.
tuve que cambiarlo a este 'if ($ error = Yii :: app() -> errorHandler-> error ['code']) '' error-> code' era dándome errores. También 'getViewFile' me está dando este error. 'CWebApplication y sus comportamientos no tienen un método o cierre llamado" getViewFile ". (/Aplicaciones/XAMPP/xamppfiles/htdocs/wm/common/lib/yii/framework/base/CComponent.php:266) '¿Alguna idea? – user2636556
el mensaje de error para 'error-> código' es' Aviso: tratando de obtener la propiedad de no objeto en /Aplicaciones/XAMPP/xamppfiles/htdocs/wm/backend/controllers/SiteController.php en la línea 48' @Boris – user2636556
Usted tienen razón. No hay un método getViewFile en la clase de la aplicación. Debe llamar al método del controlador: $ this-> getViewFile (...) –