使用fetch-joined集合限制doctrine查询?

Ste*_*ins 28 doctrine limit dql

我有一个返回博客帖子及其评论的学说查询:

SELECT b, c FROM BlogPost b LEFT JOIN b.comments c
Run Code Online (Sandbox Code Playgroud)

我想将结果限制在10篇博文中.根据DQL文档,setMaxResults()对于获取加入集合的查询(在这种情况下为注释)无法正常工作:

如果您的查询包含一个fetch-joined集合,指定结果限制方法无法正常工作.设置最大结果限制数据库结果行的数量,但是对于fetch-joined集合,一个根实体可能出现在许多行中,有效地保湿少于指定数量的结果.

如何正确限制包含fetch-joined集合的doctrine查询(在这种情况下,将结果限制为10篇博文)?

Rma*_*nnn 31

Paginate与doctrine 2.2合并而且新的symfony2版本2.0.10兼容.

现在就这样使用它

//use Doctrine paginator
use Doctrine\ORM\Tools\Pagination\Paginator;
Run Code Online (Sandbox Code Playgroud)

写下你的查询然后调用这样的结果.

$query->setMaxResults($limit);
$query->setFirstResult($offset);
$results = new Paginator($query, $fetchJoin = true);
Run Code Online (Sandbox Code Playgroud)

希望这会帮助你.

注意:如果您使用的是SF2 2.0.10,则应更新deps和deps.lock文件,并为Doctrine软件包指定2.2版本.