gpt4 book ai didi

mysql - Doctrine 2 : query using NativeQuery and ResultSetMapping

转载 作者:行者123 更新时间:2023-11-30 22:47:01 25 4
gpt4 key购买 nike

我在自定义存储库 symfony 2 类中有这段代码,我很难理解为什么 $results 总是空的。
MyApplicationBundle:Archive 是映射到 DB
集合的实体类是一个连接表 (ManyToMany) 不是一个实体
现在不是这个类的属性,但我在结果中需要它
上面构建了$where_str
我做错了什么?谢谢

    $rsm = new ResultSetMapping();
$rsm->addEntityResult('MyApplicationBundle:Archive', 'a');
$rsm->addFieldResult('a', 'id', 'id');
$rsm->addFieldResult('a', 'author', 'author');
$rsm->addFieldResult('a', 'title', 'title');
$rsm->addFieldResult('a', 'present', 'present');

$sql = "select
a.id,
a.author,
a.title,
IF((select c.archive_id from collection c where c.archive_id = a.id and c.user_id = :user),1,0) as present
from
archive a
where
$where_str";

$em = $this->getEntityManager();

$query = $em->createNativeQuery($sql, $rsm);
$query->setParameters($arrParameters);

$results = $query->getResult();

return $results;

非常乐意尝试使用 DQL 或 DQB(如果更好的话)。

最佳答案

经过一些尝试,我发现上面的代码是正确的。我只需要在 Archive 实体中添加字段“present”,创建 getter 和 setter (doctrine:generate:entities) 并更新数据库以在表中创建字段 (doctrine:schema:update --force)。无论您是否打算在其他任何地方使用它。

关于mysql - Doctrine 2 : query using NativeQuery and ResultSetMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312217/

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