2016-05-08 45 views
0

我有一個代碼可以從表中生成SQL查詢。 我想選擇日期和另一個字段中的真值之間存在的項目。在建築和碳門面使用Carbon和DB選擇高級where子句和時間戳

DB使用,下面就如何與碳的laravel 5

工作,但我沒有得到的效果我將返回所有行建議

private function runBids() { 
     $dt = Carbon::parse(Config::get('constants.start_lot')); 
     $start = $dt->toDateTimeString(); // 2006-05-08 08:34:59 
     $end = $dt->addDay()->startOfDay(); // 2006-05-09 00:00:00 

     $lots = DB::table('lots') 
       ->select('id') 
       ->where('end',false) 
       ->where('end_auction', '<=', $end) 
       ->where('end_auction', '=>', $start) // Not work. Return 0 results 
    // if comment ->where('end_auction', '=>', $start) result 39 results with date 
    // between dates 
    // (start it's date of first element of table order by end_auction) 
       ->get(); 
     $lots_id = array(); 
     foreach ($lots as $value){ 
     $lots_id[] = $value->id; 
     } 
     dd($lots_id); 
} 

回答

1

這一切似乎是正確的,但參數$start上使用的操作員除外。你有

->where('end_auction', '=>', $start) 

如果您還有

->where('end_auction', '>=', $start) 

通知=>>=之間的差異。第一個拋出一個MySQL錯誤。您可以嘗試圍繞try ... catch塊打包該代碼,並檢查異常消息。

您還可以使用one of this answers來記錄執行的查詢,以在您沒有獲得預期結果時檢查執行的查詢。

+1

哦,我的上帝......關於這個問題的幾個小時有一個錯誤。非常感謝。還有其他感謝您在Laravel上啓用查詢日誌的提示 – abkrim