【发布时间】:2018-04-10 14:32:11
【问题描述】:
从 Laravel 5.5 开始,我们现在有了 Exceptions 的渲染方法,我想利用它。 所以我想覆盖 AuthorizationException,只重定向到默认页面。问题是,它不起作用。
我们有了新的自定义异常
<?php
namespace App\Exceptions;
use Illuminate\Auth\Access\AuthorizationException;
class CustomAuthorizationException extends AuthorizationException
{
public function render()
{
return redirect(route('dashboard'));
}
}
如果我抛出 CustomAuthorizationException,一切正常,重定向就会发生。
然后我尝试将普通的 AuthorizationException 绑定到那个自定义的,但我不知道在哪里。
我都试过了
$this->app->singleton('\Illuminate\Auth\Access\AuthorizationException', '\App\Exceptions\CustomAuthorizationException');
$this->app->bind('\Illuminate\Auth\Access\AuthorizationException', '\App\Exceptions\CustomAuthorizationException');
分别在 AppServiceProvider 和 bootstrap/app.php 中。
任何提示或帮助将不胜感激。
【问题讨论】:
-
只需让您的异常处理程序处理该异常,它是一个框架异常,您不是抛出它或控制那里抛出什么的人。无论如何,这些事情都无法从容器中解决。
-
是的,我们可以这样做(我们在 5.5 之前就这样做了),但是我们将自己的异常重构为 5.5“标准?” (假设是新功能)并希望保持一致。编辑:如果无法扩展默认异常,那么我想别无选择......但必须有办法:/
-
有人可以帮忙吗?
标签: laravel laravel-5.5