我想在控制器中使用SQL從我的數據庫中選擇一些東西。Symfony2控制器中的新sql查詢
我想從數據庫中獲取最近12小時的所有事件。
這是我的控制器代碼:
public function SendDailyReportAction(Request $request){
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery("SELECT * FROM MainCoreBundle:Event WHERE added_on >= DATE_SUB(NOW(), INTERVAL 12 HOUR)");
$statement = $query->getResult();
var_dump($statement);
return $this->render('MainAdminBundle:Reports:index.html.twig');
}
我做錯了什麼?全選(*)的替代選擇是什麼? 我是否寫過實體的好路徑?
錯誤:
[Syntax Error] line 0, col 7: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got '*'
我解決這個問題是這樣的:
public function SendDailyReportAction(Request $request){
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery("SELECT e FROM MainCoreBundle:Event e WHERE e.date >= DATE_SUB(CURRENT_DATE(), 4, 'MONTH')");
$statement = $query->getResult();
var_dump($statement);
return $this->render('MainAdminBundle:Reports:index.html.twig');
}
我改變:
- DATE_SUB(NOW()來DATE_SUB(CURRENT_DATE( )
並添加爲@JoëlSalamin說別名e。
顯示我們執行您的代碼時 – 2014-09-29 09:04:18
@喬爾Salamin一個附加的錯誤我的問題內容 – Cre3k 2014-09-29 09:07:08
試圖改變自己的查詢關鍵詞,比如,你有錯誤:'SELECT * FROM MainCoreBundle:事件WHERE ...' – 2014-09-29 09:10:03