原则2-Expr类用法


Doctrine 2 - Expr class usage

我有一个实体库,它包含以下方法:

<?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的查询生成器,我需要实现这一点。我已经引用了Expr类,我可以看到我可以使用的concat()方法。

我只是似乎无法正确理解语法,很难从他们的例子中理解如何实现这一点。

请给我举个例子,说明如何使用Expr类在query Builder中创建上述查询?

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

感谢

Adam

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

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

private $fullName;

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

我认为这更直接,oo