Eloquent,在where语句

时间:2016-10-12 23:03:33

标签: php sql laravel laravel-5 eloquent

让我们说我有一个包含一些电影的数据库,它们首先在一个专栏中发布的日期和我应该在另一个电影院放映它们的月数科拉姆。

我想做的是让所有放映任何电影的电影院。 我试图在一个查询中压缩这个,就像这样

 Cinemas::whereHas('films', function($q){
    $q->where('date_created', '>=', \Carbon::now()->subMonths(showing_months)));
 })->get();

showing_months是电影放映的月数。 无论如何,访问该列的类似的原因是我访问"创建日期?

由于

1 个答案:

答案 0 :(得分:1)

我不确定将日期添加到像您这样的日期是有意义的,但基于两列和传递参数的计算可能如下所示:

Cinemas::whereHas('films', function($q){
    $q->whereRaw('date_created >= (? + showing_months)', [Carbon::now()]);
})->get();

已编辑问题的解决方案:

Cinemas::whereHas('films', function($q){
        $q->whereRaw('date_created >= DATE_SUB(?, INTERVAL showing_months MONTH)', [Carbon::now()]);
    })->get();