标题说明了一切,但问题是,我不知道如何捕捉视图错误。我已经阅读了SO中的其他解决方案,但是在视图中不推荐使用try catch
。
假设控制器没有任何错误,可以说我的视图在xxx行中有未定义的变量,并且我想在没有用户意识到的情况下立即重定向到其他页面。
我如何实现这个目标?我已经尝试过寻找答案,但并没有真正帮助。
答案 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是实际重定向之前等待的时间。但是,既然您说的没有人意识到,那么这可能就是您的解决方案。