gpt4 book ai didi

Doctrine 查询只返回一行?

转载 作者:行者123 更新时间:2023-12-01 04:33:50 26 4
gpt4 key购买 nike

我是 Doctrine 的新手,但对 SQL 比较熟悉。我有一个非常简单的用户和挑战模式。每个挑战都有一个“挑战者 ID”和一个“对手 ID”,它们是用户表的外键。我想打印所有挑战的列表,输出是用户表中的名称。这是我的 Doctrine 查询;

$q = Doctrine_Query::create()
->select('u1.name challenger, u2.name opponent')
->from('Challenge c')
->leftJoin('c.Challenger u1')
->leftJoin('c.Opponent u2');

问题是这只返回一行。我使用 getSqlQuery() 命令查看生成的 SQL,结果如下:

SELECT u.name AS u__0, u2.name AS u2__1 FROM challenge c 
LEFT JOIN user u ON c.challenger_id = u.id
LEFT JOIN user u2 ON c.opponent_id = u2.id

当在第 3 方 SQL 客户端中运行时,此查询会按预期检索所有行。知道如何从 Doctrine 中获取所有行吗?我正在使用 $q->execute(),据我所知应该适用于多行。

谢谢。

最佳答案

对我来说,它通过改变水合作用模式起作用:

$result = $query->execute(array(), Doctrine_Core::HYDRATE_SCALAR);

设置结果集然后返回一个数组而不是对象。

关于Doctrine 查询只返回一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852157/

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