3
뉴스 영역을 포함하도록 Sonata NewsBundle을 확장했습니다. 이것은 UK 방문자 영국 뉴스, 미국 방문자 미국 뉴스 등등을 보여주는 것입니다.Symfony2 DatagridBundle/SonataNewsBundle 호출기 nbResults가 올바르게 계산되지 않았습니다.
올바른 Pager 개체에서 쿼리를 사용하더라도 nbResults 개수 및 페이지는 쿼리의 영역뿐 아니라 모든 영역에서 뉴스를 집계합니다. 이로 인해 페이지 수가 잘못되었습니다.
pager.getResults()가 올바른 게시물을 가져 오는 중입니다. 다음은 참조를 위해 Pager 객체의 나뭇 가지 덤프입니다.
Pager {#1493 ▼
#queryBuilder: null
#page: 1
#maxPerPage: 10
#lastPage: 3.0
#nbResults: "26"
#cursor: 1
#parameters: []
#currentMaxLink: 1
#maxRecordLimit: false
#maxPageLinks: 0
#results: null
#resultsCounter: 0
#query: ProxyQuery {#1504 ▼
#queryBuilder: QueryBuilder {#1492 ▼
-_em: EntityManager {#537 …11}
-_dqlParts: array:9 [▶]
-_type: 0
-_state: 1
-_dql: "SELECT p, t FROM Acme\NewsBundle\Entity\Post p LEFT JOIN p.tags t WITH t.enabled = true LEFT JOIN p.author a WITH a.enabled = true LEFT JOIN p.regions r WHERE p.enabled = :enabled AND p.publicationDateStart <= :startDate AND p.collection = :collectionid AND r.id = :region AND p.id IN ('2','1') ORDER BY p.publicationDateStart DESC"
-parameters: ArrayCollection {#1500 ▶}
-_firstResult: null
-_maxResults: null
-joinRootAliases: array:3 [▶]
#cacheable: false
#cacheRegion: null
#cacheMode: null
#lifetime: 0
}
#sortBy: null
#sortOrder: null
#firstResult: 0
#maxResults: 10
#results: null
}
#countColumn: array:1 [▶]
}
(약간 약칭 함)이 나뭇 가지 마크 업
<div class="container news-list">
{% set posts = pager.getResults() %}
{% for post in posts %}
<div class="news-item">
// Mark up for post item
</div>
{% else %}
{{ 'no_post_found'|trans({}, 'SonataNewsBundle') }}
{% endfor %}
<ul class="pager">
<li class="previous">
<a class="btn {% if pager.page == pager.firstPage %} disabled{% endif %}"
{% if pager.page != pager.firstPage %}
href="{{ url(route, route_parameters|merge({'page': pager.previouspage})) }}"
{% endif %}
title="{{ 'link_previous_page'|trans({}, 'SonataNewsBundle') }}">
{{ 'link_previous_page'|trans({}, 'SonataNewsBundle') }}
</a>
</li>
<li class="next">
<a class="btn {% if pager.page == pager.lastPage %} disabled{% endif %}"
{% if pager.page != pager.lastPage %}
href="{{ url(route, route_parameters|merge({'page': pager.nextpage})) }}"
{% endif %}
title="{{ 'link_next_page'|trans({}, 'SonataNewsBundle') }}">
{{ 'link_next_page'|trans({}, 'SonataNewsBundle') }}
</a>
</li>
</ul>
</div>
가 어떻게이를 얻을 수 있습니다 :이 아카이브에서만이 게시물을 표시하지만 26 세에서 페이지의 수를 가지고있는 영국 뉴스 호출기가 올바른 페이지 정보를 표시합니까?