Json symfony用户查询返回字段I不';t指定我何时登录

Json symfony用户查询返回字段I不';t指定我何时登录,json,symfony,doctrine,fosuserbundle,dql,Json,Symfony,Doctrine,Fosuserbundle,Dql,在我的symfony应用程序中,也使用fosuserbundle,这是我创建的一个DQL查询,用于恢复有关用户的所有数据: public function getAlluserNeedlesInfo() { return $this->getEntityManager() ->createQuery( 'SELECT partial u.{id, username, email, roles, enabled, c

在我的symfony应用程序中,也使用fosuserbundle,这是我创建的一个DQL查询,用于恢复有关用户的所有数据:

public function getAlluserNeedlesInfo()
{
    return
      $this->getEntityManager()
           ->createQuery(
              'SELECT partial u.{id, username, email, roles, enabled, createdAt, updatedAt}, partial c.{id, companySiret, companyName, professional, firstName, lastName, slug, createdAt, updatedAt}
               FROM AppBundle:User u
               JOIN u.consumer c
               ORDER BY u.id ASC'
           )
          ->getResult();
}
这是我的控制器方法代码:

public function usersAction()
{
    $em = $this->getDoctrine()->getManager();
    $users = $em->getRepository('AppBundle:User')->getAlluserNeedlesInfo();
    $serializedEntity = $this->container->get('serializer')->serialize($users, 'json');
    return new Response($serializedEntity);
}
现在一切正常,这是我的控制器方法返回的json格式的结果:

[{
    "id": 1,
    "username": "test",
    "email": "test@test.com",
    "enabled": true,
    "roles": [],
    "consumer": {
        "id": 1,
        "professional": false,
        "last_name": "TEST",
        "first_name": "test",
        "slug": "test-test",
        "created_at": "2016-10-07T03:22:32+0200",
        "updated_at": "2016-10-07T17:42:17+0200"
    },
    "created_at": "2016-10-02T07:28:28+0200",
    "updated_at": "2016-10-09T01:05:04+0200"
}, {
    "id": 2,
    "username": "admin",
    "email": "admin@test.com",
    "enabled": true,
    "roles": ["ROLE_ADMIN"],
    "consumer": {
        "id": 2,
        "company_name": "admin",
        "company_siret": "01234567890006",
        "professional": true,
        "last_name": "ADMIN",
        "first_name": "Admin",
        "slug": "admin-admin",
        "created_at": "2016-10-06T08:45:23+0200",
        "updated_at": "2016-10-07T07:59:34+0200"
    },
    "created_at": "2016-09-04T12:14:03+0200",
    "updated_at": "2016-10-09T03:03:00+0200"
}, {
    "id": 3,
    "username": "test2",
    "email": "test2@test.com",
    "enabled": false,
    "roles": [],
    "consumer": {
        "id": 3,
        "company_name": "test2",
        "company_siret": "02896452300006",
        "professional": true,
        "last_name": "TEST2",
        "first_name": "test2",
        "slug": "test2-test2",
        "created_at": "2016-10-07T03:22:32+0200",
        "updated_at": "2016-10-07T17:42:17+0200"
    },
    "created_at": "2016-10-07T17:28:08+0200",
    "updated_at": "2016-10-07T17:28:08+0200"
}, {
    "id": 4,
    "username": "ju",
    "email": "j.val@gmail.com",
    "enabled": true,
    "roles": [],
    "consumer": {
        "id": 4,
        "professional": false,
        "last_name": "Val",
        "first_name": "ju",
        "slug": "val-ju",
        "created_at": "2016-10-07T18:07:06+0200",
        "updated_at": "2016-10-07T18:07:06+0200"
    },
    "created_at": "2016-10-07T18:07:06+0200",
    "updated_at": "2016-10-07T18:07:06+0200"
}]
所有这些都可以正常工作,但我注意到,如果我与这些用户之一(例如Val Ju)一起登录,查询将返回我未在中指定的一些其他凭据和数据,例如:

[{
    "id": 1,
    "username": "test",
    "email": "test@test.com",
    "enabled": true,
    "roles": [],
    "consumer": {
        "id": 1,
        "professional": false,
        "last_name": "TEST",
        "first_name": "test",
        "slug": "test-test",
        "created_at": "2016-10-07T03:22:32+0200",
        "updated_at": "2016-10-07T17:42:17+0200"
    },
    "created_at": "2016-10-02T07:28:28+0200",
    "updated_at": "2016-10-09T01:05:04+0200"
}, {
    "id": 2,
    "username": "admin",
    "email": "admin@test.com",
    "enabled": true,
    "roles": ["ROLE_ADMIN"],
    "consumer": {
        "id": 2,
        "company_name": "admin",
        "company_siret": "01234567890006",
        "professional": true,
        "last_name": "ADMIN",
        "first_name": "Admin",
        "slug": "admin-admin",
        "created_at": "2016-10-06T08:45:23+0200",
        "updated_at": "2016-10-07T07:59:34+0200"
    },
    "created_at": "2016-09-04T12:14:03+0200",
    "updated_at": "2016-10-09T03:03:00+0200"
}, {
    "id": 3,
    "username": "test2",
    "email": "test2@test.com",
    "enabled": false,
    "roles": [],
    "consumer": {
        "id": 3,
        "company_name": "test2",
        "company_siret": "02896452300006",
        "professional": true,
        "last_name": "TEST2",
        "first_name": "test2",
        "slug": "test2-test2",
        "created_at": "2016-10-07T03:22:32+0200",
        "updated_at": "2016-10-07T17:42:17+0200"
    },
    "created_at": "2016-10-07T17:28:08+0200",
    "updated_at": "2016-10-07T17:28:08+0200"
}, {
    "id": 4,
    "username": "ju",
    "username_canonical": "ju",
    "email": "j.val@gmail.com",
    "email_canonical": "j.val@gmail.com",
    "enabled": true,
    "salt": "5ng0rXXXXXXXXXXccwowscs4s",
    "password": "$2yXXXXXXXXXXXXXXXXXXXXXXXXXX1HgIHe42rz\/agpB.0fC",
    "last_login": "2016-10-07T18:15:32+0200",
    "locked": false,
    "expired": false,
    "roles": [],
    "credentials_expired": false,
    "consumer": {
        "id": 4,
        "professional": false,
        "last_name": "Val",
        "first_name": "ju",
        "slug": "val-ju",
        "created_at": "2016-10-07T18:07:06+0200",
        "updated_at": "2016-10-07T18:07:06+0200"
    },
    "created_at": "2016-10-07T18:07:06+0200",
    "updated_at": "2016-10-07T18:15:32+0200"
}]
当然,这是我不想要的,这是一种不想要的行为

为什么会发生这种行为


这是FOSUserBundle的默认序列化配置,如果您登录,它将序列化您的所有内容

您需要的是覆盖此配置。可以通过添加

# src/MyBundle/Resources/config/serialization/Model.User.yml
FOS\UserBundle\Model\User:
    exclusion_policy: ALL
    properties:
        username:
            expose: true
            groups: ["aGroupIfNeeded"]
        #...
如果你想了解更多的信息