在laravel中将where子句添加到关系表

时间:2016-04-15 20:02:23

标签: php mysql laravel laravel-5.1

我有一个问题。此查询获取所需数据,并包含相关表delivery

$RS = $this->instance->user()->with(['driver.trailer', 'driver.truck', 'driver.delivery']);

我研究了这个主题,我认为下面的部分应该可以解决问题,但我不知道如何将两者结合起来。

 //add WHERE clause to driver.delivery:
->whereBetween('created_at', [
 Carbon\Carbon::parse('last monday')->startOfDay(),
 Carbon\Carbon::parse('next sunday')->endOfDay(),])
->get();

我是Laravel的新手(现在做了大约10天),这个概念对我来说很新鲜。 (编写标准查询时没有问题)

1 个答案:

答案 0 :(得分:1)

试试这个:

return $this->instance->user()->with(['driver.delivery' => function($query){
        $query->whereBetween('created_at', [ 
            Carbon\Carbon::parse('last monday')->startOfDay(),
            Carbon\Carbon::parse('next sunday')->endOfDay() ]);
    }])->with(['driver.trailer' 'driver.truck'])->get();