laravel - Laravel findOrFail 不存在
问题描述
当我在代码中使用 findOrFail 时它不起作用
我已经尝试了 find 方法,它按我的预期工作
public function show(Question $question, Reply $reply) {
return $question->replies->findOrFail($reply->id);
}
BadMethodCallException: Method Illuminate\Database\Eloquent\Collection::firstOrFail does not exist. in file
解决方案
由于replies
是 Question 关系,如果使用$question->replies
,则返回一个Illuminate\Database\Eloquent\Collection
实例,并且该findOrFail
方法不可用,因为该方法属于Illuminate\Database\Eloquent\Builder
该类。
如果你想用findOrFail
它来构建你的查询,你必须像这样使用它:
public function show(Question $question, Reply $reply) {
return $question->replies()->findOrFail($reply->id);
}
但是,正如@porloscerrosΨ 的评论中所提到的,Reply $reply
您的函数中有一个参数。您可以简单地返回 $reply:
public function show(Reply $reply) {
return $reply;
}
希望能帮助到你。
推荐阅读
- powershell - 使用 powershell 在注册表中搜索特定的值名称及其关联的数据键
- python - Python Plots - 循环遍历特征和绘图的唯一值
- jquery - SweetAlert 2 inside iframe - 定位和选项
- angular - Angular 6 - Child-Parent-Child 交互:值在 html 中更新,而不是在 .ts 程序中
- javascript - 循环遍历两个数组并使用 javascript 获得所需的输出
- c++ - 为什么 'apt-file list' 列出不在主机上的 *.so 文件?我链接到哪一个?
- jquery - Tabify Your SharePoint Forms: list to tabs (需要添加更多到 jquery 脚本)
- python - 无法解析 json 文件:json.decoder.JSONDecodeError: Extra data。
- laravel - Laravel 5 包的可定制模型文件
- corda - 现金流量测试的保险柜查询不起作用