В моем симфони приложении, используя fosuserbundle тоже это DQL запроса я создаю, чтобы восстановить все данные мне нужно относительно пользователя:Symfony запросы пользователей возвращаемых полей Я не указать, когда я вошел в
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": "[email protected]",
"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": "[email protected]",
"enabled": true,
"roles": ["ROLE_ADMIN"],
"consumer": {
"id": 2,
"company_name": "admin",
"company_siret": "",
"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": "[email protected]",
"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": "[email protected]",
"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": "[email protected]",
"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": "[email protected]",
"enabled": true,
"roles": ["ROLE_ADMIN"],
"consumer": {
"id": 2,
"company_name": "admin",
"company_siret": "",
"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": "[email protected]",
"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": "[email protected]",
"email_canonical": "[email protected]",
"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"
}]
конечно, это вещь, которую я не хочу, и это, не желательное поведение.
Почему такое поведение возникло?