我有一個雄辯的模型中定義的一些查詢範圍的方法和我打電話他們在控制器允許Laravel建立使用查詢在Laravel失敗,但在MySQL
return View::make('credit_apps/view')->with('creditApps', CreditApp::ApprovalStatus()
->SalesRep()
->Submitted()
->RefReceived()
->get()
);
被照亮爲返回的錯誤查詢MySQL的語法錯誤:
Illuminate \ Database \ QueryException SQLSTATE[42000]: Syntax error
or access violation: 1064 You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for the right
syntax to use near '' at line 1 (SQL: select * from `credit_apps`
where `approval_status` = 'Approved' and `sales_rep` = 'Joe Smith' and
`date_received` between '2014-04-30 00:00:00' AND '2014-05-15
00:00:00' and `date_ref_received` between '2014-04-27 00:00:00' AND
'2014-05-30 00:00:00')
然而,當我分析查詢在MySQL Workbench中,或者在命令行雖然標準不返回任何記錄它分析得很好,但我知道它不會。儘管如此,這是一個有效的查詢,並且在MySQL中工作正常。
是什麼導致Laravel拋出錯誤?
看來,Laravel不喜歡日期的where子句。如果我沒有日期搜索它的作品。 – Malchesador
我看到沒有錯誤的SQL查詢,但我注意到它說「語法錯誤或訪問衝突」。您是否曾嘗試通過終端使用Laravel使用的相同MySQL用戶/密碼來運行此SQL?此外,「SHOW CREATE TABLE」將非常有用。我假設日期欄是'DATETIME'? – charmeleon
請發表你的 「CreditApp ::審批狀態()」 laravel代碼 – Laurence