Я пытаюсь понять, как использовать Doctrin 2 nativeQuery.
Я создал простой класс персонала со следующими атрибутами:
id (id)
userName (имя пользователя)
lastName (фамилия)
электронная почта (email)
обратите внимание на дела верблюдов. Имена в () являются именами полей базы данных. Не соответствует, и это специально для тестирования.
когда я пытаюсь использовать собственный запрос, я настраиваю следующее:
$rsm = new \Doctrine\ORM\Query\ResultSetMapping();
$rsm->addEntityResult('Entities\Staff', 's');
$rsm->addFieldResult('s', 'id', 'id');
$rsm->addFieldResult('s', 'userName', 'username');
$rsm->addFieldResult('s', 'lastName', 'last_name');
$rsm->addFieldResult('s', 'password', 'password');
$rsm->addFieldResult('s', 'email', 'email');
$sql = 'SELECT id, s.username, last_name, password, email from staff s ' ;
$query = $this->em->createNativeQuery($sql, $rsm);
$users = $query->getResult();
\Doctrine\Common\Util\Debug::dump($users[0]);
когда я запускаю запрос, я сбрасываю объект с помощью средства дампа и получаю:
object (stdClass) # 97 (10) {[" CLASS "] => string (14) "Entities \ Staff" ["id"] => int (1) ["userName" ] => NULL ["firstName"] => NULL ["lastName"] => NULL ["пароль"] => string (5) "admin" ["email"] => string (12) "abc @ druid. dk "[" isAdmin "] => NULL [" conference "] => array (0) {} [" role "] => array (0) {}}
обратите внимание, что id, email и пароль содержат правильные значения, в то время как userName и lastName имеют значение NULL.
Почему это?
Спасибо за любую помощь. Я немного запутался. Я не вижу подобных примеров в документации Doctrine, так что, возможно, я что-то неправильно понял. наиболее вероятный ...:)