2017-02-04 39 views
2

我會得到所有項目從表,其中結束日期爲> =現在日期和結束日期爲NULL並公佈= 1雄辯 - 當日期> =日期(現在)和whereNull(「日」)

這就是我有,但給我0項目:

$items = Items::orderBy(\DB::raw('RAND()')) 
     ->where('endDate', '>=', date("Y-m-d")) 
     ->whereNull('endDate') 
     ->where('published', '1') 
     ->whereIn('cid', $this->activeId) 
     ->orderBy('id') 
     ->paginate(4); 
+0

你爲什麼包括' - >在哪裏( '可用',「1 ')'如果你想用' - > where('published','1')'來獲取數據。可能是這個問題 –

回答

3

你需要使用一個封閉和orWhereNull()

->where(function($) { 
    $q->where('endDate', '>=', date("Y-m-d")) 
     ->orWhereNull('endDate'); 
}) 
+1

謝謝,完美的工作:) – Crni

0

您同時使用的條件,這永不放棄的結果

->where('endDate', '>=', date("Y-m-d")) 
->whereNull('endDate') 

嘗試使用orWhere

+0

如果我使用: - > where('saleEndDate','> =',date(「Ymd」)) - > orWhereNull('saleEndDate'),這會給我從表中的所有項目日期<當日(現在) – Crni

0

您可以用兩個封閉whereorWhere做:

->where(function($query) { 
    $query->where('endDate', '>=', date("Y-m-d")) 
     ->orWhere('endDate',NULL); 
})