Laravel - Eloquent查询hasManyThrough

时间:2017-01-17 12:36:34

标签: laravel

我有3个模特

事件 - 表格('事件') 班次 - 表('轮班') 工作时间 - 表格('工作时间')

我可以致电event->shifts->workedtimes一切都很好

现在我想进行查询以获取(Auth)用户工作的所有事件

这样的事情:

Event::with('workedtimes')->where('workedtimes.uid', Auth::user()->id)->get();

但这不起作用。请帮忙。

2 个答案:

答案 0 :(得分:2)

要获取经过身份验证的用户工作的所有事件,您需要使用whereHas()方法:

$events = Event::whereHas('workedtimes', function($q) {
    $q->where('uid', auth()->user()->id);
})->get();

答案 1 :(得分:0)

您可能正在寻找  Constraing eager loading。查询:

Select  Datediff(day,'21 JULY 2017', EOMONTH('21 JULY 2017')) * 
        (2.08/DAY(EOMONTH('21 JULY 2017')))