Skonfigurowałem procedurę obsługi błędów w mojej witrynie Yii.Program obsługi błędów Yii nie działa, gdy plik widoku nie zostanie znaleziony.
Oto kod.
main.php
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
SiteController.php
public function actionError() {
if ($error = Yii::app()->errorHandler->error) {
if (Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
strona/error.php fi
<?php
$this->pageTitle=Yii::app()->name . ' - Error';
$this->breadcrumbs=array(
'Error',
);
?>
<h2>Error <?php echo $code; ?></h2>
<div class="error">
<?php echo CHtml::encode($message); ?>
</div>
to działa ne i przekierowanie do tej strony błędów niestandardowych Jeśli adres URL jest nieprawidłowy lub niewłaściwa funkcja połączenia z użytkownikiem. Na przykład, Jeśli w kontrolerze witryny ustawiłem funkcję contact
i URL wywołania użytkownika podobny do tego localhost.com/site/contactsdffe
, to przekierowuje ona do tej niestandardowej strony błędu.
Ale problem jest tutaj.
Jeśli funkcja kontrolera wywoła kontakt widoku i nie ustawiłem widoku widoków/site/contact.php, to nie nazywa się tego niestandardową stroną błędu. Daje mi to błąd wyjątku.
CException: SiteController nie może znaleźć żądanego widoku "kontakt".
Nie wiem, dlaczego obsługa błędów nie działa w tym scenariuszu. Daj mi znać, jak mogę wyświetlić niestandardową stronę błędu dla tego rodzaju błędu.
Każda pomoc docenią. Z góry dziękuję !