簡體   English   中英

Laravel 5中自定義分頁演示器的替代方法是什么?

[英]What is the alternative to Custom Pagination Presenter in Laravel 5?

在Laravel 5中,自定義演示者已被刪除? 有人知道Laravel 5中的替代方法是調整類名稱和查看數據嗎?

http://laravel.com/docs/4.2/pagination#custom-presenters

在Laravel 5中,自定義分頁基於演示者(類)而不是視圖。

假設您的路由代碼中有

$users = Users::paginate(15);

在L4中,您通常在視圖中執行以下操作:

$users->appends(['sort' => 'votes'])->links();

在L5中,您改為:

$users->appends(['sort' => 'votes'])->render();

render()方法接受Illuminate\\Contracts\\Pagination\\Presenter實例。 您可以創建一個實現該合同的自定義類,並將其傳遞給render()方法。

另外,您可以擴展Laravel分頁器(以使用其分頁邏輯),然后將現有的分頁實例( $users->... users- $users->... )傳遞給擴展的類構造函數。 實際上,這就是我根據Laravel提供的Bootstrap演示者創建自定義Zurb Foundation演示者所做的工作。 它使用所有Laravel分頁邏輯,並且僅覆蓋渲染方法。

使用我的自定義演示者,我的視圖如下所示:

with(new \Stolz\Laravel\Pagination($users->appends(['sort' => 'votes'])))->render();

我的自定義分頁演示者是:

<?php namespace Stolz\Laravel;

use Illuminate\Pagination\BootstrapThreePresenter;

class Pagination extends BootstrapThreePresenter
{
    /**
     * Convert the URL window into Zurb Foundation HTML.
     *
     * @return string
     */
    public function render()
    {
        if( ! $this->hasPages())
            return '';

        return sprintf(
            '<ul class="pagination" aria-label="Pagination">%s %s %s</ul></div>',
            $this->getPreviousButton(),
            $this->getLinks(),
            $this->getNextButton()
        );
    }

    /**
     * Get HTML wrapper for disabled text.
     *
     * @param  string  $text
     * @return string
     */
    protected function getDisabledTextWrapper($text)
    {
        return '<li class="unavailable" aria-disabled="true"><a href="javascript:void(0)">'.$text.'</a></li>';
    }

    /**
     * Get HTML wrapper for active text.
     *
     * @param  string  $text
     * @return string
     */
    protected function getActivePageWrapper($text)
    {
        return '<li class="current"><a href="javascript:void(0)">'.$text.'</a></li>';
    }

    /**
     * Get a pagination "dot" element.
     *
     * @return string
     */
    protected function getDots()
    {
        return $this->getDisabledTextWrapper('&hellip;');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM