我有模型用戶class Users extends Model implements AuthenticatableContract{ use Authenticatable,HasApiTokens; protected $primaryKey = 'user_id'; protected $fillable = ['email','password','email_token', 'verified']; public function user_info() { return $this->hasOne('App\Models\UserInfo','user_id'); }}在控制器中,我想查詢關系表列 "kind" 等于 1 的所有用戶。So Users table has user_info_id(one to one) . User_info has kind_id.我想通過關系表列 kind_id 查詢用戶。我可以通過 left join 做到這一點。但是我怎么能用關系來做呢?我試過這樣但它不起作用$univer_list = Users::with('user_info')->where('is_university',1) ->where('kind_id',1);
2 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
您可以使用whereHas基于關系的存在進行查詢:
$univer_list = Users::where('is_university', 1)
->whereHas('user_info', function ($query) {
$query->where('kind_id', 1);
})->get();
只獲取與where等于 1有關系的,Users應該命名為。UserUserInfokind_id

Qyouu
TA貢獻1786條經驗 獲得超11個贊
您可以在with
$univer_list = Users::with(['user_info' => function($q) {
$q->where('kind_id', 1);
}])->where('is_university', 1)->get();
我假設您is_university存在于users表中,并且您的kind_id列存在于user_info表中。
- 2 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消