2017-01-08 243 views
0

我試過先進where子句Laravel 5查詢生成器

我有2分datetime列startend

請求到達兩個值date_start, date_end

我的代碼

->where(function($q) use ($date_start,$date_end) { 
       $q->where('start','>=',$date_start) 
        ->where('end','<=',$date_start) 
        ->where('start','>=',$date_end) 
        ->where('end','<=',$date_end); 
      }) 
      ->first(); 

代碼模型表中只有一條記錄返回, 請求合適。哪裏不對?

+0

什麼是記錄開始和結束值和比較反對什麼的開始和結束的值,你傳遞? –

+0

你對這種情況有什麼期望?我認爲它只能匹配條件,如果您的記錄在數據庫中的開始日期> =結束日期和$ date_start並且$ date_end在[end,start]內 – gie3d

+0

如果您正在比較日期,則可能需要使用'whereDate' –

回答

0

工作

$q->where('start','<=',$date_start) 
    ->where('start','<',$date_end) 
    ->where('end','<=',$date_end);