我將使用CodeIgniter編寫的簡單Web應用程序移植到Symfony2 bundle。我是Symfony2和Doctrine的新手,我想在一個DQL中重寫一個SQL查詢。我已經準備好進入我的包中,創建了Entity類,並且能夠將數據插入到數據庫中,並以Symfony2提供的面向對象編程方式進行簡單的查詢。不幸的是,我不知道如何實現這DQL SQL查詢:使用SQL函數的Doctrine DQL查詢
$sql = "SELECT * FROM t WHERE
UNIX_TIMESTAMP(t.date) > ".(time()-300)." AND
ROUND(t.x,3) = ".round($x, 3);
正如你可以看到有一些SQL函數調用,需要將數據庫服務器上執行。學說不能理解這個電話。當然,我可以選擇退出使用Doctrine,並在我的Symfony2包中使用基本PDO執行此查詢,但我想充分利用Symfony2和Doctrine的優勢。所以我想在面向對象的方式或使用聰明的DQL查詢理解是這樣完成的:
$em->createQuery("SELECT t FROM MyTestBundle:MyEntity t WHERE t.x = :x")
->setParameter("x", round($x,3));
,但能夠從舊的應用程序我的SQL查詢重寫我的新包是必須的。請幫助我找到正確的解決方案。