Doctrine 2 native查询addFieldResult区分大小写?

时间:2011-08-10 02:09:52

标签: doctrine camelcasing

我正在试图弄清楚如何使用Doctrin 2 nativeQuery。

我创建了一个具有以下属性的简单人员类:

id(id) userName(用户名) lastName(last_name) 电子邮件(电子邮件)

注意骆驼的情况。 ()中的名称是数据库字段的名称。不一致,这是有目的的测试。

当我尝试使用本机查询时,我设置了以下内容:

$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 [“password”] => string(5)“admin”[“email”] => string(12)“abc@druid.dk”[“isAdmin”] => NULL [“meetings”] => array(0){} [“roles”] => array(0){}}

注意id,email和password如何包含正确的值,而userName和lastName都是NULL。

为什么?

thanx任何帮助。我有点困惑。我在Doctrine文档中没有看到这样的例子,所以也许我误解了一些东西。最有可能...... :)

1 个答案:

答案 0 :(得分:2)

您的参数已切换。试试这个:

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