学说2 - Expr课程用法

时间:2015-02-26 17:52:15

标签: php mysql symfony doctrine-orm doctrine

我有一个包含以下方法的实体存储库:

<?php
namespace Brs\UserBundle\Entity;

use Doctrine\ORM\EntityRepository;


class UserRepository extends EntityRepository

{
    public function findMentors(){
        $em = $this->getEntityManager();
        $qb = $em->createQueryBuilder();

        $qb ->select('u')
            ->from('BrsUserBundle:User', 'u')
            ->where('u.mentor = 1');

        return $qb;
    }
}

现在,我想通过连接User实体中的fname和lname字段并分配别名来进一步自定义此查询。在MySql中,查询将是:

SELECT *,concat(fname,' ',lname) as name FROM table;

这正是我想要的。

现在使用Doctrine 2的Query Builder我需要实现它。 我已经提到了Expr Class,我可以看到我可以使用的concat()方法。

我似乎无法使语法正确,并且很难理解如何从他们的示例中实现这一点。

那么请问我一个如何使用Expr类在Query Builder中创建上述查询的示例?

更好的是还能帮助我理解Expr类如何在不同的实例中使用,这样我就可以从逻辑上和语法上理解它。

由于

亚当

1 个答案:

答案 0 :(得分:1)

我知道这不是你问题的答案

但我宁愿编辑你的用户类并添加一个fullname属性,比如

private $fullName;


public function getFullName(){
   return $this->getFirstName()." ".$this->getLastName();
}

我认为这是更直接的和oo