嗨,为什么我在使用$ user-> posts作为属性时得到一个空集合。但是,当我使用$ user-> posts()作为函数时,我会执行get收集。
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: []
}
答案 0 :(得分:2)
第一种方法(user
)应该在您的post
模型中。
第二种方法(posts
)应该在您的user
模型中。
检查数据库,查看posts表是否有一个名为user_id
的列。
检查您的数据库,查看user_id
列是否具有有效值(根据users
表。
还要确保您的路线中有{user}
。像这样:
Route::get('home/{user}', 'Cotroller@method')
答案 1 :(得分:0)
用户模型:
public function posts(){
return $this->belongsTo(User::class);
}
发布模型:
public function user(){
return $this->hasMany(Post::class);
}
并确保您的user_id
表上有post
列