2014-12-26 47 views
0

我想將MariaDB語句轉換爲Eloquent查詢。 SQL語句正常工作,但不幸的是,Eloquent部分不是。將MariaDB語句轉換爲Laravel4雄辯查詢

的SQL語句(MariaDB的)

SELECT matchday_id,MAX(ADDDATE(日期,INTERVAL 105 MINUTE))AS matchday_end
從匹配
GROUP BY matchday_id
HAVING MAX(日期) < now();

鋒-查詢(Laravel 4)

$ ended_matchdays = DB ::表( '匹配')
- > selectRaw('matchday_id,MAX(ADDDATE(日期,INTERVAL 105 MINUTE))作爲matchday_end ')
- > GROUPBY(' matchday_id ')
- >具有(' MAX(日期)」, '<', 'NOW()')
- >得到();未發現柱::

錯誤消息(Laravel 4)

SQLSTATE [42S22] 1054未知列 'MAX(日期)' '其具有條款'(SQL中:選擇matchday_id,MAX(ADDDATE (日期,間隔105分鐘))作爲最終從matches組由matchday_idMAX(date) < NOW())

我真的不知道,爲什麼這不工作,也許 - 就像有時 - 一個簡單的錯誤我沒看到.. 希望你們能幫助我一起!

回答

2
->having('MAX(date)', '<', 'NOW()') 

需要成爲:

->having(DB::raw('MAX(date)'), '<', 'NOW()') 
+0

我想你需要在'DB :: raw()'中包裝'NOW()'。或者簡單地說整個表達式有(DB :: raw('MAX(date) lukasgeiter

0

我現在的工作。
這裏是(對我)的工作代碼:

- >有(DB ::原始( 'MAX(日期)'), '<',碳::現在())

我試圖只包裝MAX(日期)部分,以及DB :: raw()中的整行,但都沒有工作。

現在我用的是碳類,它像一個風情萬種=)

謝謝!