由于我在浏览网页时无法找到有关此内容的任何信息,因此我想回答当Eloquent在您的表格中找不到指定记录时您如何应对这种情况。
这样做的一个例子就是说,用户正在尝试编辑一个不存在ID的页面,所以他试图去somesite.com/pages/edit/1;但是,ID为1的页面不存在。
我的问题是,您是否使用显示通用错误消息的内置findOrFail()方法,或者更好的解决方案是始终检查指定的记录是否存在,如果没有则抛出异常?< / p>
提前致谢。
答案 0 :(得分:2)
更好的选择是使用findOrFail
(如果通过id查找)或firstOrFail
(如果不是通过id查找)。这样,Laravel会自动抛出异常,您可以进行重定向或显示404页面。
但是,如果您想进行自定义重定向(例如,在一种情况下重定向到主页,在其他情况下,例如某些页面页面),您可以捕获每个控制器中的异常,然后进行重定向,例如:
try {
$record = Page::findOrFail(1);
}
catch (ModelNotFoundException $e) {
// here you can make redirection, log or anything you want
}
答案 1 :(得分:0)
findOrFail
将显示404页面。所以这是一种方法