0
$root = AnimeCommentQuery::create()->findRoot(2);
$html = "<ul>{$root->getComment()}";

foreach ($root->getDescendants() as $post)
{
  $html .= '<li style="padding-left: '.$post->getLevel().' em;">';
  $html .= $post->getComment();
  $html .= ' by '.$post->getIbfMembersRelatedByInsertBy()->getName();
  $html .= "</li>";
}

$html .= "</ul>";
echo $html;

我想对帖子进行分页,但我无法通过以下方式执行此操作:

$root = AnimeCommentQuery::create()->findRoot(2)->paginate(2, 1);

或者

$root = AnimeCommentQuery::create()->paginate(2, 1)->findRoot(2);

可以使用 propel 的标准分页来完成吗?如何?

4

1 回答 1

0

不知道会不会太晚了......

首先,您不能在同一个查询中使用分页和查找,它们都是终止方法。

我认为你需要的是这样的:

$comments = AnimeCommentQuery::create()->inTree(2)->orderByBranch()->paginate(2,1);

然后foreach通过你的方式Collection

现在你必须在何时关闭和打开列表、检查当前级别等方面有点聪明。页面 2+ 的顶部和底部也会考虑一些因素。祝你好运!

嵌套集 API 值得进一步研究http://www.propelorm.org/behaviors/nested-set.html#complete_api,得到了相当多的了解。

还可以考虑使用 a->joinWith()getIbfMembersRelatedByInsertBy()主查询中预先填充。

于 2012-06-08T11:25:50.520 回答