gpt4 book ai didi

native - 原则2, native 查询

转载 作者:行者123 更新时间:2023-12-04 07:28:36 27 4
gpt4 key购买 nike

我正在尝试使用Doctrine 2进行 native 查询。但是我无法使其工作..

$q = "SELECT * FROM user_recent_activity WHERE id = {$user->id}";
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
$query = $this->_em->createNativeQuery($q, $rsm);
$result = $query->getResult();

这是返回空数组。这:
id  user_id  type     created_at
12 5 opinion 2011-02-22 23:29:00
2 2 vote 2011-01-30 14:16:51

id代表不同的对象,因此不是外键。

因此,是否可以对教义2进行常规查询? ..我快疯了..

谢谢

最佳答案

如果它是 View 或表格(从查询中获取行和列),那应该不是问题。

您需要使用rsm将结果映射到 native sql查询的实体。

$rsm->addEntityResult('UserRecentActivity', 'u');
$rsm->addFieldResult('u', 'id', 'id');
$rsm->addFieldResult('u', 'user_id', 'user_id');
$rsm->addFieldResult('u', 'type', 'type');
$rsm->addFieldResult('u', 'created_at', 'created_at');

并且您也应该具有适当的实体。

您可以检查 http://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html以获取更多详细示例。

更新:

如果 View 包含来自多个表的结果,则可以使用addJoinedEntityResult()方法将结果映射到它们各自的实体。您需要相应地定义实体,并将结果映射到其字段。

该方法可能最终会出现部分对象,因此应谨慎使用以避免数据损坏。

有关部分对象的信息: http://www.doctrine-project.org/docs/orm/2.0/en/reference/partial-objects.html

关于native - 原则2, native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com