Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
751 views
in Technique[技术] by (71.8m points)

php - How can I select specific Columns with createQueryBuilder in Doctrine ORM?

I'm using Doctrine createQueryBuilder() to construct queries in Symfony2. But, I don't want to take all columns in this entity. How can I select only the ID and Name?

$query = $this->getEntityManager()->createQueryBuilder();
        $query
            ->select('d')
            ->from('AcmeBundle:Demo', 'd')
            ->leftjoin('d.otherEntity', 'o');

        $query->setMaxResults(10);
        $results = $query->getQuery()->getResult();

Thank you so much,

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try following,

$fields = array('d.id', 'd.name', 'o.id');
//$fields = 'partial d.{id, name}, partial o.{id}';  //if you want to get entity object

$query = $this->getEntityManager()->createQueryBuilder();
$query
    ->select($fields)
    ->from('AcmeBundle:Demo', 'd')
    ->leftjoin('d.otherEntity', 'o');

$query->setMaxResults(10);
$results = $query->getQuery()->getResult();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...