Laravel 5自定义分页

时间:2015-10-17 19:08:01

标签: pagination laravel-5 laravel-5.1

我通过扩展BootstrapThreePresenter创建了一个FoundationFivePresenter,只需更改getDisabledTextWrapper和getActivePageWrapper并将其放在/ app / Pagination中。

namespace App\Pagination;

use Illuminate\Pagination\BootstrapThreePresenter;
class FoundationFivePresenter extends BootstrapThreePresenter
{
    /**
     * Get HTML wrapper for disabled text.
     *
     * @param  string  $text
     * @return string
     */
    protected function getDisabledTextWrapper($text)
    {
        return '<li class="unavailable"><span>'.$text.'</span></li>';
    }

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

我找到了演示者的位置:

public function render(Presenter $presenter = null)
{
    if (is_null($presenter) && static::$presenterResolver) {
        $presenter = call_user_func(static::$presenterResolver, $this);
    }

    $presenter = $presenter ?: new BootstrapThreePresenter($this);

    return $presenter->render();
}

但我不想实例化我的演示者并将其传递给视图中的渲染。所以我查看了LengthAwarePaginator,因为在我的控制器中我调用了User :: paginate(15)并且没有使用SimplePaginator,并且设置$ presenterResolver的唯一其他方法似乎是通过扩展LengthAwarePaginator并将其设置为默认为新的渲染中的FoundationFivePresenter实例,或以某种方式实例化LengthAwarePaginator并调用presenter传入我的演示者的新实例,这看起来更加麻烦。

是否有更简单的方法在Laravel 5.1中使用自定义分页器,而不涉及在视图中传入实例?为了以防万一,我检查了配置文件中的设置。

0 个答案:

没有答案