嘿,我现在看了很多文章,但是我认为我的知识妨碍我改编任何示例,所以我在这里,希望您能提供帮助:
我想要的是:有一个雄辩的查询,它看起来在2个表中
我所拥有的:
$myProfile = \App\User::with('friends')->where('friend_type','2')->get();
我希望获得结果。 在我的用户模型中,我具有以下内容:
public function friends()
{
return $this->hasMany(Friend::class);
}
在我的朋友模型中:
public function user()
{
return $this->belongsTo(User::class);
}
我也尝试过:
$myProfile = \App\User::with(['friends'])->where('friend_type','2')->get();
或
$myProfile = \App\User::with('friends')->where('friends.friend_type',2)->get();
但我收到的错误仍然相同:
Column not found: 1054 Unknown column 'friends.friend_type' in 'where clause' (SQL: select * from `users` where `friends`.`friend_type` = 2 and `users`.`deleted_at` is null)
非常感谢
答案 0 :(得分:1)
我认为以下将达到目的:
User::with(['friends' => function ($query) {
$query->where('friend_type', 2);
}])->get();
答案 1 :(得分:1)
如果要选择friend_type
为2
的所有用户,则应使用whereHas
。就像
\App\User::whereHas('friends', function($q){
$q->where('friends.friend_type',2)
})->get();