2016-05-19 4 views
2

Как обрабатывать CHttpException в yii. Если кто-то вводит неправильный URL-адрес, я хочу перенаправить пользователя на конкретную страницу. Я могу справиться ошибка деления на 0, но не в состоянии Генделя CHttpException
я пишу этот код в модуль> компоненты> контроллерYII 1 Обработка ошибок и исключений

public function init() 
    { 
     parent::init(); 
     Yii::app()->attachEventHandler('onError',array($this,'handleError')); 
     Yii::app()->attachEventHandler('onException',array($this,'handleError')); 
    } 

    public function handleError(CEvent $event) 
    { 

     if ($event instanceof CExceptionEvent) 
     if ($event instanceof CHttpException) 
     { 
      // some logics 
     } 
     elseif($event instanceof CErrorEvent) 
     { 
      $arr[0]=$event->code; 
      $arr[1]=$event->message; 

      $this->render("application.views.site.error", array('event' => $arr)); 
     } 
     $event->handled = TRUE; 
    } 

enter image description here

ответ

0

В контроллере сайта:

public function actionError() 
    { 
     $this->layout = "viewsLayout"; 
     if ($error = Yii::app()->errorHandler->error) { 
      if (Yii::app()->request->isAjaxRequest) 
       echo $error['message']; 
      else 
       $this->render('error', $error); 
     } 
    } 
+0

Сэр ..! На самом деле проблема заключается в том, как обнаружить CHttpException? –

+0

Обнаружение исключений с помощью try {} catch {} операторов, – crafter

Смежные вопросы