【问题标题】:Eloquent Query Builder in laravel 5laravel 5 中的 Eloquent 查询生成器
【发布时间】:2015-06-30 04:05:41
【问题描述】:

如何将此 sql 语句更改为 Eloquent 查询..

SELECT * FROM `promotions` 
WHERE 
(CURDATE() 
BETWEEN from_date - INTERVAL 2 DAY AND from_date) 
OR 
(CURDATE() >= from_date AND CURDATE() <= to_date)

我试过了>>

$start =  date("Y-m-d 00:00:00"); //todate
$end =    // todate + 2
return $this->model->whereBetween('from_date',[$start,$end])->get();

但我不知道如何更改此部分>>

OR (CURDATE() >= from_date AND CURDATE() <= to_date)

请告诉我正确的方法..感谢并尊重所有人。

【问题讨论】:

    标签: php sql eloquent


    【解决方案1】:

    我认为这应该可以完成工作:

    $today = date('Y-m-d H:i:s');
    $end_date = date('Y-m-d H:i:s', strtotime('+2 days'));
    $this->model->whereBetween('from_date',[$today,$end_date])
                ->orWhere( function( $query ) {
                     $query->where($today, '>=', 'from_date')
                           ->where($today, '<=', 'to_date');
                })
                ->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 2015-12-21
      • 2017-08-31
      • 2017-12-29
      • 2020-01-22
      相关资源
      最近更新 更多