Voglio visualizzare la pagina di errore 404 per che ho fatto il file error404.php nella mia cartella protetta/vista/sistema.YII come gestire la pagina di errore 404 personalizzata insieme ad altre pagine di errore
Per impostazione predefinita ho Sitecontroller e la funzione azione di errore, come di seguito
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
{
if(Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
all'interno di configurazione principale file, viene definito come
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
il mio problema è che ho bisogno di personalizzare solo 404 pagina che conteneva, resto dell'errore ho bisogno di gestire il modo in cui viene gestito dalla funzione di errore del sitecontroller. Ma non sono riuscito a trovare un modo per farlo. Se supponiamo che io rimuovo 'ErrorAction' => 'sito/error', dalla configurazione principale allora Mostrano l'errore 404 chiamando
throw new CHttpException(404, 'Page not found');
ma facendo che posso vedere solo la pagina senza layout di anche altri errori personalizzati sono trattati come 404 mentre non lo sono. Ho letto il manuale molte volte ma non riesco ancora a risolverlo.
ho dovuto cambiarlo in questo 'if ($ error = Yii :: app() -> errorHandler-> errore ['code']) '' error-> code' era dandomi errori. Anche 'getViewFile' mi sta dando questo errore. 'CWebApplication e i suoi comportamenti non hanno un metodo o chiusura chiamato" getViewFile ". (/Applications/XAMPP/xamppfiles/htdocs/wm/common/lib/yii/framework/base/CComponent.php:266) 'Qualche idea? – user2636556
il messaggio di errore per 'error-> code' è' Avviso: cercando di ottenere la proprietà di non-oggetto in /Applications/XAMPP/xamppfiles/htdocs/wm/backend/controllers/SiteController.php sulla riga 48' @ Boris – user2636556
You sono giusti. Non esiste un metodo getViewFile nella classe app. Dovrebbe chiamare il metodo del controler: $ this-> getViewFile (...) –