2015-06-30 4 views
0

Как я могу изменить SQL заявление красноречив запрос ..Eloquent Query Builder в Laravel 5

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) 

Пожалуйста, покажите мне правильный путь. Спасибо и уважение ко всем.

ответ

2

Я думаю, что это должно сделать работу:

$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(); 
Смежные вопросы