2016-10-28 42 views
0

我想用Eloquent执行一个简单的查询。用Eager加载的雄辩查询

我需要获得与我在同一国家的所有公开比赛(比赛 - >类型= 1)。比赛没有COUNTRY_ID,但我需要

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

所以,在我比赛的表,我有一个USER_ID是所有者,而在我的模型,我有一个工作的关系,即得到$泰国队做>所有者

这里是我的尝试(不工作)

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

不知道如何解决它???

+0

这是一个错误? ''tournament-> owner-> country_id == Auth :: user() - > id' vs'where('id',Auth :: user() - > country_id)' - 那些看起来相反(并且country_id = = user_id似乎也反直觉)。 – Samsquanch

+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

+0

它似乎在工作! TX –