我有问题,我无法重定向此例外:
This action is unauthorized.
在处理程序中我有:
use Illuminate\Auth\AuthenticationException;
...
public function render($request, Exception $exception)
{
if ($exception instanceof AuthenticationException) {
return redirect()->to('/');
}
return parent::render($request, $exception);
}
但条件总是返回假..为什么?
我在调试中收到消息:
protected function prepareException(Exception $e)
{
if ($e instanceof ModelNotFoundException) {
$e = new NotFoundHttpException($e->getMessage(), $e);
**} elseif ($e instanceof AuthorizationException) {
$e = new AccessDeniedHttpException($e->getMessage(), $e);**
} elseif ($e instanceof TokenMismatchException) {
$e = new HttpException(419, $e->getMessage(), $e);
}
return $e;
}
我试着和AccessDeniedHttpException
。不工作......
答案 0 :(得分:1)
例外:
此操作未经授权。
由Illuminate\Auth\Access\AuthorizationException;
因此,您的功能应该是这样的:
use Illuminate\Auth\Access\AuthorizationException;
...
public function render($request, Exception $exception)
{
if ($exception instanceof AuthorizationException) {
return redirect()->to('/');
}
return parent::render($request, $exception);
}
您当前使用的那个(Illuminate\Auth\AuthenticationException
)用于身份验证。