如何在Doctrine QueryBuilder中使用用户定义的函数?

时间:2012-09-30 20:12:58

标签: symfony doctrine doctrine-orm dql user-defined-functions

我在Symfony2应用程序中为Doctrine ORM创建了一个用户定义的函数,名为isnull_string()。这是为了能够在字符串字段按升序排序时执行将空记录放在底部而不是顶部的查询。在MySQL中,它看起来像SELECT * FROM airlines ORDER BY ISNULL(name), name;

该函数在全局config.yml文件中注册,如Symfony2文档中所述。但是我无法找到任何资源,因为我可以在创建QueryBuilder对象时使用此函数。

以下是我正在创建的下拉菜单:

 $builder->add('airline', 'entity', array('query_builder' 
       => function(EntityRepository $er){
              return $er->createQueryBuilder('airline')->orderBy('isnull_string(airline.name), airline.name', 'ASC');
          });

但是它返回了语法错误:Expected end of string, got '('

那么如何在FormBuilderInterface中使用这个自定义函数?

0 个答案:

没有答案