2014-12-26 34 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()中的整行,但都没有工作。

现在我用的是碳类,它像一个风情万种=)

谢谢!