laravel - 尝试块中出错时如何显示默认的laravel错误页面?
问题描述
在 laravel 8 中,我在 try 块中捕获更新命令,例如:
DB::beginTransaction();
try {
$page->NonExistingmethod($this->requestData);
DB::commit();
} catch (\Exception $e) {
DB::rollback();
return redirect()->back()->withErrors($e->getMessage());
}
事务回滚,但如何在开发模式下留下相同的 laravel 错误页面?任何重定向都不是我想看到的。
哪个决定在生产中可能是好的?
谢谢!
解决方案
如果我理解正确,您想显示 Laravel 附带的堆栈跟踪视图。
然后你可以抛出一个自定义异常,比如
DB::beginTransaction();
try {
$page->NonExistingmethod($this->requestData);
DB::commit();
} catch (\Exception $e) {
DB::rollback();
throw new MyException($e->getMessage());
}
或在回滚后抛出异常
throw $e;
Laravel 将在调试模式下显示堆栈跟踪。如果调试模式关闭,它将显示 500 错误页面。
推荐阅读
- package-managers - 在 Nix 覆盖中禁止运行时依赖包
- jquery - 如何在 Laravel6 中使用 Ajax 提交表单?
- firebase - “浏览器或应用程序可能不安全。请尝试使用其他浏览器。” Flutter Firebase Google 登录错误
- facebook - 如何使用 Firebase Flutter 实现 Facebook 登录?
- c++ - 如何使用 C++ 更新 QML 文本
- ruby - 我正在尝试使用 first.last 从多维数组中删除,但它返回 nil。(红宝石)
- xamarin.forms - 如何将条目拆分或设备为 Xamarin 表单中的小条目
- django - Django使用接收器或覆盖保存创建链接模型?
- javascript - 如何在 php laravel 的第二页上保留过滤器选项?
- python - 我设法使用正则表达式将逗号插入字符串,但需要一些帮助