2015-03-27 1 views
-1

У меня проблема с моей страницей. Мой маршрут:Paginate in KnpPager не работает

show_product_category: 
path:  /{id}/{name} 
defaults: { _controller: ShopDesktopBundle:Category:showCategory} 
requirements: 
    id: \d+ 
    _method: GET 

В мой контроллер:

$aProducts   = $repositoryProduct->getProductsOrderByDateDesc($id); 
    $paginator = $this->get('knp_paginator'); 
    $pagination = $paginator->paginate(
     $aProducts, 
     $this->get('request')->query->get('page', 1), 
     3 
    ); 
    return $this->render('ShopDesktopBundle:Category:category.html.twig',array(
     'pagination'  => $pagination 
    )); 

просмотреть:

<div class="navigation"> 
    {{ knp_pagination_render(pagination) }} 
</div> 

Это рассчитать нормальный подсчет продукции и с точки зрения я вижу: 1 2 3>. Но когда я попытался получить страницу 2 в url, она отправит:? Page = 2, но список продуктов не изменится.

ответ

0

вы пропустили настроить параметры страницы и обработать его в контроллере:

использовать этот маршрут:

show_product_category: 
    path:  /{id}/{name}/{page} 
    defaults: 
     _controller: ShopDesktopBundle:Category:showCategory 
     page: 1 
    requirements: 
     id: \d+ 
     page: \d+ 
    methods: [GET] 

и в контроллере:

public function showCategoryAction($id, $name, $page) 
{ 
    //your code..... 
    $pagination = $paginator->paginate(
    $aProducts, 
    $page, 
    3 
    ); 
    // your code... 
} 
+0

Thx Ghanbari. Это работает – TanGio