2014-11-16 59 views
0

我有任務表以及日期欄'提醒日期'和'截止日期'。我需要在今天提到的那些日子之間完成所有任務。我對查詢知之甚少,所以ORM會更好。Laravel ORM獲取日期間的記錄?

我試過,

$today = date("Y-m-d"); 
$availTasks = Task::whereRaw($today.' between rem_date and due_date')->get(); 
echo ($availTasks); 

回答

3

首先,使您的使用日期字符串正確的應該是:

$availTasks = Task::whereRaw('? between rem_date and due_date', [$today])->get(); 

如果您rem_datedue_dateDATE類型它應該工作。但是,如果他們是DATETIME類型,它將無法正常工作。您應該使用:

$availTasks = Task::whereRaw('? between DATE(rem_date) and DATE(due_date)', [$today])->get(); 
+0

第一個人工作。 –

1

如何使用地方封閉的化合物:

$dateToday = date('Y-m-d H:i:s'); 

$query = Task::where(function ($query) use ($dateToday){ 
    $query->where('rem_date', '>=', $dateToday); 
    $query->where('due_date', '<', $dateToday); 
}); 
echo $query->get(); 

而且使用whereRaw你應該總是綁定您的參數,因爲它可以成爲注入載體時。我知道這個參數只是你的情況中的日期,但這只是一個好習慣。見先生。 Nabiałek回答這個問題。