如何在Laravel中加载多重嵌套关系

时间:2015-01-27 15:11:08

标签: php laravel eloquent laravel-5

我试图在Laravel中加载嵌套关系。我的模型设置如下:

客户"有很多"项目

项目"有很多"任务

任务"有很多" timeEntries

TimeEntry 有一个名为&#34的布尔列;已计费。"

我想做的就是用雄辩的方式选择一个只有时间条目的客户,我不需要中间的项目和任务。

我已经想到了两个我不太喜欢的解决方案:

  1. 添加" customer_id"列进入我的时间条目表并关联 他们直接
  2. 使用类似下面的内容然后迭代 通过多个for循环来获取时间条目。
  3. e.g。

    Customer::where('id', '=', $customerId)
    ->with('projects.tasks.timeEntries')
    ->first();
    

    这很有效,但真的很不优雅。 知道我如何使用客户直接访问timeEntries?我试过把一对夫妇链接起来&has 34,hasManyThrough"我的客户模型中的关系,但我找不到办法。看起来只有两个"水平深度"我需要去三个。

    确实理想情况下,我想知道的是,如果某个客户的任何时间条件都有" 0"在布尔"开帐单"柱。如果有一种方法可以从我雄辩的查询中得到这些,我甚至不需要timeEntries本身。关于如何实现这两个目标的任何想法?

0 个答案:

没有答案