排除 findAll Symfony2 中的一些字段

use*_*822 0 symfony doctrine-orm

我使用此代码获取数据库中的所有用户

$users= $this->getDoctrine()
        ->getRepository('AppBundle:Users')
        ->findAll();
        return $this->render('livre/users.html.twig',array(
            'users' => $users,
        ));
Run Code Online (Sandbox Code Playgroud)

但我只想得到一些字段 sush as nameemail并隐藏像password..这样的字段。谢谢。

sco*_*ico 5

你可以这样做:

1/ 在 UserRepository 类中创建一个特定的方法:

public function findByNameAndEmail()
{
    $query = $this->createQueryBuilder('u')
        ->select('u.name, u.email') // where name & email are properties of your User entity
    ;

    return $query->getQuery()->getResult();
}
Run Code Online (Sandbox Code Playgroud)

2/ 并且,在您的控制器中调用它:

public function someAction()    
{
    $users = $this->getDoctrine()->getRepository('AppBundle:Users')->findByNameAndEmail();

    return $this->render('livre/users.html.twig',array(
        'users' => $users,
    ));
}
Run Code Online (Sandbox Code Playgroud)