首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载更多功能symfony 2.8

加载更多功能symfony 2.8
EN

Stack Overflow用户
提问于 2017-07-07 23:13:57
回答 1查看 637关注 0票数 0

因此,我有一个名为Task.php的实体,我从数据库中获取所有聊天消息并呈现在当前页面上。下面是我如何在实体中获取它们:

代码语言:javascript
运行
复制
/**
 * @return \Doctrine\Common\Collections\Collection|static
 */
public function getDisplayedActivity()
{
    $limit = 15;
    $criteria = Criteria::create();
    $criteria->orderBy(['createdAt' => 'DESC']);
    $criteria->setMaxResults($limit);
    $criteria->where(Criteria::expr()->isNull('parent'));
    return $this->activity->matching($criteria);
}

在我将它们渲染成twig文件后,如下所示:

代码语言:javascript
运行
复制
{% for a in displayedActivity %}
...
{% endfor %}

现在有限制-一个页面上只有15条消息显示。我需要“加载更多”按钮,这将加载另外15个消息块末尾的消息,每次我将按下它。但我不知道该怎么做。

任何帮助都将不胜感激。

EN

Stack Overflow用户

发布于 2017-07-07 23:18:55

您可以将setMaxResultssetFirstResult结合使用,例如:

代码语言:javascript
运行
复制
$start = 0;
$limit = 15;
$criteria = Criteria::create();
$criteria->orderBy(['createdAt' => 'DESC']);
$criteria->setFirstResult($start);
$criteria->setMaxResults($limit);
$criteria->where(Criteria::expr()->isNull('parent'));
return $this->activity->matching($criteria);

这样你就可以从记录0到15

如果您希望记录从30到45,则需要将start变量更改为30。

因此,如果需要分页,可以传递pageNumber,例如page=1

代码语言:javascript
运行
复制
$page = 1;
$limit = 15;
$start = ($page * limit) - $limit;
$criteria = Criteria::create();
$criteria->orderBy(['createdAt' => 'DESC']);
$criteria->setFirstResult($start);
$criteria->setMaxResults($limit);
return $this->activity->matching($criteria);
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44974263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档