我使用基于OctoberCMS和Laravel的Twig。
十月有Scope Pagination功能,但它缺少我需要的功能,所以我必须使用Laravel来返回结果和分页。
我有一个带有类别和图像数据库记录的厨房。
我正在尝试从网址获取:category
标识符nature
以过滤回数据库结果。
问题
代码返回自然图像并显示分页。但是当我点击页码时,网址会更改为?page=2
或/2
,但页面按钮会保留在1
上,并且记录/图片不会更改。
就像下一页的php重置一样,再次显示第1页结果。
URL
localhost/gallery/nature
标识符
/gallery/:category?latest/:page?
获取所有类别的图像记录。
我将此代码放在我的页面gallery.htm
。
$category = $this->param('category');
$this['scopeCategory'] = Gallery::where('category', $category)->paginate(5);
使用分页显示图像。
列出图片
{% for image in scopeCategory %}
<img src="example.com/{{ image.name }}.jpg">
{% endfor %}
简单分页
<< 1 | 2 | 3 | 4 >>
{{ scopeCategory.render|raw }}
自定义分页
← Prev 2 | 3 | 4 | 5 Next →
{% if scopeCategory.LastPage > 1 %}
<ul class="pagination">
{% if scopeCategory.CurrentPage > 1 %}
<li><a href="{{ this.page.baseFileName|page({ (pageParam): (scopeCategory.CurrentPage-1) }) }}">← Prev</a></li>
{% endif %}
{% for page in 1..scopeCategory.LastPage %}
<li class="{{ scopeCategory.CurrentPage == page ? 'active' : null }}">
<a href="{{ this.page.baseFileName|page({ (pageParam): page }) }}">{{ page }}</a>
</li>
{% endfor %}
{% if scopeCategory.LastPage > scopeCategory.CurrentPage %}
<li><a href="{{ this.page.baseFileName|page({ (pageParam): (scopeCategory.CurrentPage+1) }) }}">Next →</a></li>
{% endif %}
</ul>
{% endif %}
答案 0 :(得分:0)
您可以将页码直接传递给分页器,方法是将其指定为第二个参数(see docs)。以下代码应该可以解决您的问题。
$page= $this->param('page');
$category = $this->param('category');
$this['scopeCategory'] = Gallery::where('category', $category)->paginate(5, $page);