2012-07-18 46 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 /实体(或实体?)名称的拼写和驼峰值。