php - 当模型的 id 异常时,try/catch 块不起作用
问题描述
这是我的代码:
$id = 'wrong id';
try{
$myLaravelModel = MyLaravelModel::find($id);
$myLaravelModel->done = true; //here's error
}catch (Exception $e){
return 'error';
}
当代码到达注释行时,我收到错误:“从空值创建默认对象”,这是准确的,但我认为 catch 块会捕获并返回“错误”。为什么它不起作用?
解决方案
您需要使用 findOrFail()。MyLaravelModel::findOrFail($id)
. 正如这里所说。
未发现异常
有时,如果找不到模型,您可能希望抛出异常。这在路由或控制器中特别有用。
findOrFail
and方法将检索查询的firstOrFail
第一个结果;但是,如果没有找到结果,Illuminate\Database\Eloquent\ModelNotFoundException
则会抛出 a:
推荐阅读
- swift - Swift用嵌套字典替换字典数组中的键值
- exception - SICStus Prolog 中的 create_mutable/2
- python - discord.py-rewrite - 如何为某些用户覆盖和更改冷却时间?
- python - 如何从裁剪的 numpy 矩形中定义顶部和左侧点?
- javascript - 注册表单 + Stripe JS - 我必须点击两次提交
- python - python龙卷风404与vuejs
- python - 如何将多个 excel xlsm 文件与一个数据集中的多个工作表合并?
- c - printf() 中大浮点数的奇怪行为并分配给 int
- java - 为什么在这里创建一个新变量会产生不同的值?
- javascript - 如何让我的 Intersection Observer 只将 div 放在屏幕上一次而不在用户滚动时将其移除?