symfony2从控制器获取字段而不获取整个实体

时间:2015-04-10 20:14:24

标签: symfony doctrine entity

我遇到了问题。我是symfony2的新手,我试图在我的控制器中获取一个存储库的字段,而不是全部。我尝试使用findAll()并且它可以工作'除了得到所有字段'。

这是我的控制器:

<?php

namespace Extranet\RepportsBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class UtilisateurController extends Controller
{
    /**
     * Retrieves utilisateurs name(called entite)
     * 
     * @Route("/utilisateur", name="extranet_repports_utilisateur")
     * @Template("ExtranetRepportsBundle:Utilisateur:index.html.twig")
     */
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        // $entity = $em->getRepository("ExtranetUtilisateurBundle:Utilisateur")->findAll(array());
        $entity = $em->getRepository("ExtranetUtilisateurBundle:Utilisateur")
                     ->createQueryBuilder(
                        'SELECT u.name FROM ExtranetUtilisateurBundle:Utilisateur u ORDER BY u.name ASC'
                     )
                     ->getResult();
        ;

        var_dump($entity);die();

        return array('entity' => $entity);
    }
}

// $em = $this->getDoctrine()->getManager();
// $query = $em->createQuery(
//     'SELECT p
//     FROM AcmeStoreBundle:Product p
//     WHERE p.price > :price
//     ORDER BY p.price ASC'
// )->setParameter('price', '19.99');

// $products = $query->getResult();

我试图只从存储库中获取用户名,下面的注释代码是symfony书中的示例

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以在查询构建器的select()方法中指定要选择的属性

$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository("ExtranetUtilisateurBundle:Utilisateur");
$result=  $entity->createQueryBuilder('u')
                 ->select('u.name')
                 ->orderBy('u.name')
                 ->getQuery()
                 ->getArrayResult();