关于laravel:laravel-8-修改默认的paginate分页模板

7次阅读

共计 1473 个字符,预计需要花费 4 分钟才能阅读完成。

最近应用日志工具 ARCANEDEV/LogViewer 时,装置胜利之后,发现分页有问题,应该是作者还没有适配 Laravel8 造成的。

对照文档粗略的看了下与之前版本的区别,发现自带的分页 ui 由 bootstrap UI 改为 tailwind css 了。


一路查看源码,首先找到 Illuminate\Pagination\AbstractPaginator 115 和 122 行:

   /**
    * The default pagination view.
    *
    * @var string
    */
    public static $defaultView = 'pagination::tailwind';

    /**
     * The default "simple" pagination view.
     *
     * @var string
     */
    public static $defaultSimpleView = 'pagination::simple-tailwind';

以及下方 552 行之后

    /**
     * Set the default pagination view.
     *
     * @param  string  $view
     * @return void
     */
    public static function defaultView($view)
    {static::$defaultView = $view;}

   /**
    * Set the default "simple" pagination view.
    *
    * @param  string  $view
    * @return void
    */
    public static function defaultSimpleView($view)
    {static::$defaultSimpleView = $view;}

咱们的分页办法是 $list->links(); 必定与 links 这个办法无关,找到,vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php
这个是分页组件的入口文件(能够这么了解了),找一下 links() 办法,94 行,

    /**
     * Render the paginator using the given view.
     *
     * @param  string|null  $view
     * @param  array  $data
     * @return string
     */
     public function links($view = null, $data = [])
     {return $this->render($view, $data);
     }

    /**
     * Render the paginator using the given view.
     *
     * @param  string|null  $view
     * @param  array  $data
     * @return \Illuminate\Contracts\Support\Htmlable
     */
     public function render($view = null, $data = [])
     {return static::viewFactory()->make($view ?: static::$defaultSimpleView, array_merge($data, ['paginator' => $this,]));
     }

能够看到参数 $view 指的就是对应的是模板名:
pagination::simple-default // 默认,tailwind 款式
pagination::simple-bootstrap-4 // bootstrap UI
所以我把作者的分页办法由 rander()改为带参数的:
$data->links(‘pagination::bootstrap-4’)
就能够批改分页模板 ui 为 bootstrap UI 了。

正文完
 0