ребята. Я новичок в Laravel. Только что установил 5.5 и попробуйте перехватить AuthenticationException в App \ Исключения \ Handler как ниже
public function render($request, Exception $exception)
{
if ($exception instanceof AuthenticationException) {
//Do something
}
}
Проблема в том, что ($ исключение instanceof AuthenticationException) всегда возвращает false.
dd($exception instanceof AuthenticationException) //return false.
Когда я дд ($ исключение) я получил
AuthenticationException{
#gurad...
....
.....
}
Тогда я пытаюсь
get_class($exception) return \Illuminate\Auth\AuthenticationException
Тем не мение,
dd($exception instanceof Exception) //return true.
Пожалуйста помоги. Благодарю.
Вы должны убедиться, что вы используете класс из допустимого пространства имен:
public function render($request, Exception $exception)
{
if ($exception instanceof \Illuminate\Auth\AuthenticationException) {
//Do something
}
return parent::render($request, $exception);
}
Ты упомянул:
dd ($ исключение instanceof Exception) // вернуть true.
Это правда. Каждый класс исключений, который будет расширять класс Exception, будет возвращать true для этого, поэтому в своем обработчике вы должны убедиться, что сначала вы проверили определенные классы, а не класс исключений, например, если вы использовали:
public function render($request, Exception $exception)
{
if ($exception instanceof Exception) {
//Do something 1
}
if ($exception instanceof \Illuminate\Auth\AuthenticationException) {
//Do something 2
}
return parent::render($request, $exception);
}
всегда //Do something 1
будет запущен первым.
Других решений пока нет …