2
進出口試圖通過ORDER BY列作爲DQL參數,如下圖所示:主義DQL動態ORDER BY參數
$this->em->createQuery("SELECT t FROM Entities\Topic t ORDER BY :order")
->setParameters(array('order' => 't.name'))->getResult();
我想這是行不通的,因爲的setParameter會逃跑:順序,但是下方解決方案似乎不太好:
$order = 't.name'; // Dynamic value
$this->em->createQuery("SELECT t FROM Entities\Topic t ORDER BY $order")
->getResult();
有沒有更好的方法來解決這個問題?
@Dennis對不起,如果這個答案傷害你的感情;)不,嚴重 - 如果有一個動態內置的查詢 - 這就是用於查詢的實際使用情況建設者。但另一方面,我認爲你的解決方案確實沒問題。我不會做可變插值,看起來不太清楚。如果我是你,只需要:' - > createQuery('SELECT t FROM Entities \ Topic t ORDER BY'。$ order)'並且完成它。 – Max
@Max,這是從SQL注入安全嗎?! –
@LucianoMammino不,你應該肯定有一個允許的值的白名單 – Max