我需要紧急帮助,我会解释我正在尝试做什么,然后解释我们已经拥有的东西。
需要像这样进行搜索:
//Project\MyBundle\Repository
$query = $this->getEntityManager()->getRepository('ProjectMyBundle:Product')->createQueryBuilder('p')
->where('MD5(p.id) = :id')
->setParameter('id', $id )
->getQuery()
->getSingleResult();
我在MD5上获取了id,并且必须在数据库中的MD5上搜索id。
当我进行搜索时,我出现了,给了我以下错误:
[语法错误]第0行,第51栏:错误:预期的已知功能,得到'MD5'
表示lib:
但我把它放在文件夹中,现在我需要知道它应该在哪里。
我在Symfony 2.1.6中使用Mysql,Doctrine 2.2
答案 0 :(得分:1)
您需要将MD5注册为自定义DQL函数:
# app/config/config.yml
doctrine:
orm:
# ...
entity_managers:
default:
# ...
dql:
string_functions:
MD5: Acme\HelloBundle\DQL\MD5Function
有关详细信息,请参阅:http://symfony.com/doc/2.0/cookbook/doctrine/custom_dql_functions.html