2015-09-19 70 views
0

我在laravel 5.0的用戶臺2個的日期欄。該模式是:laravel口才比較2列

用戶 * ID *電子郵件 * activated_on * deactivated_on

我想詢問用戶是否激活,所以我有以下範圍功能:

public function scopeActivated($query){ 
    $now = date('Y-m-d'); 
    return $query->whereBetween('activated_on', ['deactivated_on', $now]); 
} 

的這產生的查詢是它將列activated_on與字符串deactivated_on進行比較。

有沒有辦法告訴雄辯比較2列?

回答

2

您可以嘗試whereRaw功能

$query->whereRaw('activated_on < deactivated_on AND activated_on > ?', array($now)); 
+0

你知道有多好這個功能適用於各種其他類型的數據庫?我知道它在sqlite中有效,但是postgres和sql server呢? – ajon

+0

其實,我沒有嘗試過Postgres或SQL服務器。幾年前,我需要它在MySQL上,我認爲它適用於MySQL,但我不完全確定。 – ugursogukpinar