QQ截图20170602093337.jpg

一、需求

ThinkPHP5 的分页驱动是重构的,和之前完全不一样,因此可以自定义分页的驱动。

默认的分页驱动中:

  • ul 的 class 是 pagination
  • ul > li 没有class

二、修改

我用的是 amazeui 的UI框架,因此需要进行修改驱动。

Amazeui 的分页是:

 ul > class="am-pagination am-pagination-default"
 ul > li

具体需要修改的驱动是:

thinkphp > libary > think > paninator > driver > Bootstrap.php

涉及的代码是 119-140 行,能够分别设置修改 ul 和 li 的 class

.....// 省略一些代码 
} else {
                return sprintf(
                    '<ul data-am-widget="pagination"
      class="am-pagination am-pagination-default">%s %s %s</ul>',
                    $this->getPreviousButton(),
                    $this->getLinks(),
                    $this->getNextButton()
                );
            }
        }
    }

    /**
     * 生成一个可点击的按钮
     *
     * @param  string $url
     * @param  int    $page
     * @return string
     */
    protected function getAvailablePageWrapper($url, $page)
    {
        return '<li><a href="' . htmlentities($url) . '">' . $page . '</a></li>';
    }