laravel - 为什么 Eloquent HasMany 返回一个空集合?
问题描述
嗨,为什么当我使用 $user->posts 作为属性时我得到一个空集合。但是,当我使用 $user->posts() 作为函数时,我会进行收集。
public function user(){
return $this->belongsTo(User::class);
}
public function posts(){
return $this->hasMany(Post::class);
}
public function index(User $user){
dd($user->posts);
return view('home', compact('user'));
}
@foreach($user->posts as $post)
<p>$post->title</p>
<p>$post->body</p>
@endforeach
result
Collection {#1102 ▼
#items: []
}
解决方案
第一种方法 ( user
) 应该在您的post
模型中。
第二种方法 ( posts
) 应该在您的user
模型中。
检查您的数据库并查看 posts 表是否有一个名为user_id
.
检查您的数据库并查看该user_id
列是否具有有效值(根据users
table.
还要确保您的路线{user}
在其中。像这样的东西:
Route::get('home/{user}', 'Cotroller@method')
推荐阅读
- c# - 如何在 EF 6 中重命名自动生成的 n:m 表?
- python - 抓取隐藏数据 [ window.__WEB_CONTEXT__= ] ...最好使用 Scrapy
- xcode - carthage build failed for realm-cocoa - 任务失败,退出代码为 65:
- wpf - Button Click 的另一个 WPF 设置焦点问题(在设计时控制不是子项)
- c# - C# 多级继承或接口的重复实现?
- python - 使用 Xlwings 匹配电子表格中的 pandas 数据框行
- django - 如何为 Django 模型表单设置初始值
- amazon-web-services - CDK 有没有办法向通过 Cognito 身份验证的用户授予 S3 访问权限
- api - 如何使用 cURL 更快地发送许多 POST 请求
- excel - VBA Excel 循环遍历同一目录中的所有 .xslm 文件