Doctrine 2 нативный запрос addFieldResult чувствительность к регистру? - PullRequest
0 голосов
/ 10 августа 2011

Я пытаюсь понять, как использовать 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, так что, возможно, я что-то неправильно понял. наиболее вероятный ...:)

1 Ответ

2 голосов
/ 09 декабря 2011

Ваши параметры переключаются. Попробуйте это:

$rsm->addFieldResult('s', 'username', 'userName');
$rsm->addFieldResult('s', 'last_name', 'lastName');
...