2012-07-18 71 views
0

我跑這DQL聲明:Symfony2中和DQL

return $this->getEntityManager() 
    ->createQuery("SELECT s FROM Bundle:table s WHERE s.title LIKE '%:search%'") 
    ->setParameter('search', $search) 
    ->getResult(); 

但我發現了這個錯誤:

Invalid parameter number: number of bound variables does not match number of tokens 

任何人都知道我做錯了嗎?

回答

1

你不能像那樣使用變量替換。試試這個:

return $this->getEntityManager() 
    ->createQuery("SELECT s FROM Bundle:table s WHERE s.title LIKE :search") 
    ->setParameter('search', "%" . $search . "%") 
    ->getResult(); 
+0

是的,我意識到當我在調試時,它正在剝離'%'。謝謝您的幫助。 – 2012-07-18 12:58:55

0

顯然Bundle:table不是您的項目中的包和實體的正確引用。檢查您的Bundle /實體(或實體?)名稱的拼寫和駝峯值。