Eager Loading的Eloquent查询

时间:2016-10-28 17:12:51

标签: laravel eloquent

我想用Eloquent执行一个简单的查询。

我需要获得与我在同一个国家/地区的所有公开锦标赛(锦标赛 - >类型= 1)。锦标赛没有country_id,但我需要用

来完成
$tournament->owner->country_id == Auth::user()->id

所以,在我的锦标赛表中,我有一个user_id是所有者,在我的模型中,我有一个工作关系,获得$ tournament->所有者

这是我的尝试(不起作用)

openTournaments = App\Tournament::with('owner')
    ->whereHas('owner', function ($query)  {
        $query->where('id', Auth::user()->country_id);
    })
    ->where('type', config('constants.OPEN_TOURNAMENT'))
    ->get();

任何想法如何解决它?

1 个答案:

答案 0 :(得分:1)

我不确定你的架构是什么样的,但假设用户有一个与之关联的country_id,并且锦标赛有一个与之关联的所有者,你应该能够这样做:

openTournaments = App\Tournament::with('owner')
->whereHas('owner', function ($query)  {
    $query->where('country_id', Auth::user()->country_id);
})
->where('type', config('constants.OPEN_TOURNAMENT'))
->get();

注意country_id而不是id