Laravel With Wherehas

时间:2014-10-28 12:37:48

标签: php laravel laravel-4 eloquent

我正在使用查询来获取属于某个城市的公司,这些公司属于某个事件。

$companies = Event::find($id)->city->companies;

现在在我看来,我正在通过公司进行迭代,以输出在那里工作的人员

@foreach($companies as $company)
    @foreach($company->persons as $person)
        ...
    @endforeach
@endforeach

唯一的问题是它还向我展示了没有人的公司

所以我知道如何修改我的查询以仅显示有人的公司

我在考虑WhereHas,但我似乎无法将自己包含在两者的逻辑中。

谢谢!

2 个答案:

答案 0 :(得分:1)

我不确定它是否有效,但您可以试试这个:

$companies = Event::find($id)->city->companies()->has('persons')->get();

答案 1 :(得分:0)

根据the documentation

  

[...]您可能希望根据a的存在来限制您的结果   关系[...]为此,您可以使用has方法。

这样的事可能有用:

Event::find($id)->city()->companies()->has('persons')->get();

鉴于我不知道确切的返回对象以进行正确的方法链接。