1、目标效果
2、HTML 代码
<div class="page">{$page}</div>
3、PHP 代码
$where = [];
$admin = AdminModel::where($where)->paginate(3); // 每页 3 条数据
$page = $admin->render();
return $this->fetch('', ['data' => $admin, 'page' => $page]);
4、修改框架源码
依次找到 thinkphp
/library
/tink
/paginator
/driver
/Bootstrap.php
。
添加首页按钮方法:
/**
* 首页按钮
* @param string $text
* @return string
*/
protected function getIndexButton($text = "«")
{
if ($this->currentPage() <= 1) {
return $this->getDisabledTextWrapper($text);
}
$url = $this->url(1);
return $this->getPageLinkWrapper($url, $text);
}
添加尾页按钮方法:
/**
* 尾页按钮
* @param string $text
* @return string
*/
protected function getLastButton($text = '»')
{
if (!$this->hasMore) {
return $this->getDisabledTextWrapper($text);
}
$url = $this->url($this->lastPage());
return $this->getPageLinkWrapper($url, $text);
}
修改渲染方法如下:
/**
* 渲染分页html
* @return mixed
*/
public function render()
{
if ($this->hasPages()) {
if ($this->simple) {
return sprintf(
'<ul class="pager">%s %s %s %s</ul>', // 新增 两个 %s
$this->getIndexButton('首页'), // 新增
$this->getPreviousButton('上一页'),
$this->getNextButton('下一页'),
$this->getLastButton('尾页') // 新增
);
} else {
return sprintf(
'<ul class="pagination">%s %s %s %s %s</ul>', // 新增 两个 %s
$this->getIndexButton('首页'), // 新增
$this->getPreviousButton('上一页'),
$this->getLinks(),
$this->getNextButton('下一页'),
$this->getLastButton('尾页') // 新增
);
}
}
}