Laravel,如果我的视图有错误(任何类型),如何重定向到其他页面?

时间:2018-08-16 07:11:04

标签: php laravel

标题说明了一切,但问题是,我不知道如何捕捉视图错误。我已经阅读了SO中的其他解决方案,但是在视图中不推荐使用try catch

假设控制器没有任何错误,可以说我的视图在xxx行中有未定义的变量,并且我想在没有用户意识到的情况下立即重定向到其他页面。

我如何实现这个目标?我已经尝试过寻找答案,但并没有真正帮助。

2 个答案:

答案 0 :(得分:1)

好的,我为您的案件找到了一些解决方法

首先,您需要在resources/views/errors/500.blade.php中创建文件

在该文件中,您应该放置一些可重定向到onLoad事件中想要的url的javascript。

window.location = 'url/you/want'

然后必须将report()中的App/Exceptions/Handler.php函数修改为类似的

public function report(Exception $exception){
    abort(500);
    parent::report($exception);
}

但是要当心。完成上述操作后,您的控制器将抛出所有未处理的异常,并重定向到刀片文件中您先前指定的网址

PS:在任何情况下,视图本身都不应有任何错误。您必须确保控制器返回视图所需的所有值,而不是处理视图中的错误。

答案 1 :(得分:0)

您必须使用

header("Refresh:0; url=foo.php");

其中0是实际重定向之前等待的时间。但是,既然您说的没有人意识到,那么这可能就是您的解决方案。