2015-08-03 2 views
0

Я хочу установить другой шаблон лезвия просмотра для другого исключения, а также передать ошибки на следующей странице. Я попробовал следующий код, но он не работает. Он всегда переходит в другую часть кода и запускает код parent::render($request, $e);.Как создать различный вид для разных исключений laravel 5?

public function render($request, Exception $e) 
{ 
    if ($this->isHttpException($e)) 
    { 
     if($e instanceof InvalidArgumentException) 
     { 
      return response()->view('front.missing', [], 404); 
     }elseif($e instanceof ErrorException){ 
      return response()->view('front.missing2', [], 404); 
     } 
     return $this->renderHttpException($e); 
    }else{ 
     if($e instanceof InvalidArgumentException) 
     { 
      return response()->view('errors.204', []); 
     } 

     return parent::render($request, $e); 
    } 

} 

Где находится проблема и что я буду делать сейчас?

+0

что вызывает исключение InvalidArgumentException'? – Digitlimit

+0

попытайтесь получить не-имущественный объект. –

ответ

0

InvalidArgumentException не является дочерним классом HttpException, поэтому он всегда переходит в часть else.

+0

Я хочу установить другой шаблон клика для разных исключений или ошибок, чем то, что я буду делать? –

+0

Для исключений типа HttpException вам просто нужно добавить шаблоны лезвия для разных кодов состояния в зависимости от ресурсов/представлений/ошибок. например 404.blade.php, 500.blade.php, laravel будет соответствовать вашему статусу и шаблону. Для других исключений вы можете настроить ответ как то, что вы уже сделали в своем коде. – yixiang

+0

404, 500 работают хорошо, как вы сказали. Как получить код статуса? Раньше я уже говорил, что мой код не работает как мое ожидание. –

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