2016-08-24 2 views
1

Webサービスを使用するアプリケーションがあります。Symfony 2とTwigでPagerfantaヘルパーのみを使用

リクエスト例:私のアプリは、このようにWebServiceのための要求送信

https://mywebservice.com/interesting-route/?page=4&limit=30

をだから私は、私は私のコントローラにページ付けするArrayAdapterを使用することができ、他の結果の単なるスライスではなく、完全な配列を、受け取ります。私は、私のビューでDOM要素を生成するためにちょうどtwig拡張を使用したいと思います。

応答例:

{ 
    results: 
    [ 
     { 
     title: 'Nice title', 
     body: 'Nice body' 
     }, 
     ..., 
     { 
     title: 'Nice title', 
     body: 'Nice body' 
     }, 
    ], 
    total: 1350, 
    limit: 30 
] 

多分FixedAdapterを使用して、方法は何ですか?

おかげ

+0

私は結果を操作するためにPagerfantaは必要ないと思っています(既にwebserviceによって管理されている場合)が、このデータ(現在のページと合計)を持つDOM要素のページ設定を作成します。 – yceruto

答えて

1

あなたが言うように、FixedAdapterはあなたがここで必要なものを行う必要があります。ここにいくつかのサンプルコントローラコードがあります。

public function someAction(Request $request) 
{ 
    $page = 1; 
    if ($request->get('page') !== null) { 
     $page = $request->get('page'); 
    } 
    $totalResults = // call your webservice to get a total 
    $limit = 30; 

    $slice = $this->callMyWebserviceInterestingRoute($page, $limit); 

    $adapter = new FixedAdapter($totalResults, $slice); 
    $pagerfanta = new Pagerfanta($adapter); 
    $pagerfanta->setMaxPerPage($limit); 
    $pagerfanta->setCurrentPage($page); 

    return $this->render('default/pages.html.twig', [ 
     'my_pager' => $pagerfanta, 
    ]); 
} 

希望します。

関連する問題