2015-07-28 49 views
0

我有一個表像下面結構, enter image description hereLaravel 4.2 WhereBetween不工作

entry_added_date正存儲日期等效場,(2015年7月27日)。

現在我想filer這兩個日期之間的條目與此字段。

我嘗試下面的代碼,

$start = Input::get('start'); 
    $end = Input::get('end'); 

$arr = DB::table('otc_revenue_entries') 
     ->whereBetween('entry_added_date',array($start,$end)) 
     ->get(); 
return Response::json(['data',$arr]); 

哪裏是我的代碼錯了,?

+0

做' - > toSql()',並顯示其生成的SQL。也許這會幫助,因爲我認爲代碼是正確的。也許你應該使用'int'值來使用Laravel的'whereBetween()' – ventaquil

+0

爲什麼你不使用'created_at'而是'entry_added_date'?在表中有沒有「正確的」entry_added_date(不是空的,並且匹配你的$ start,$ end)的行? – M0rtiis

回答

2

檢查下面的代碼..

$startdate = new DateTime($start); 
    $start_date = $startdate->format("Y-m-d"); 
    $enddate = new DateTime($end); 
    $end_date = $enddate->format("Y-m-d"); 

$arr = DB::table('otc_revenue_entries') 
     ->leftJoin('otc_users','otc_users.user_id','=','otc_revenue_entries.entry_added_by') 
     ->leftJoin('otc_branches','otc_branches.branch_id','=','otc_revenue_entries.entry_branch') 
     ->whereBetween('entry_added_date',array($start_date,$end_date)) 
     ->get(); 

return Response::json(['data',$arr]); 
0

確保您的$ start和$ end實際上與您的entry_added_date格式相同,比較可能因此而失敗。