ThinkPHP5.1 a une implémentation de pagination intégrée. Il est très simple d'ajouter une fonction de sortie de pagination aux données. Vous pouvez appeler directement la méthode paginate lors de l'interrogation de la classe Db. Cet article explique comment personnaliser les styles de pagination dans thinkphp.
thinkphp5.1 a une classe de pagination très pratique Vous pouvez utiliser la méthode render pour afficher le code HTML de pagination
Mais le "<< " Une page et la page suivante telle que ">>" ne peuvent parfois pas répondre aux besoins changeants du projet. Il est nécessaire de définir vous-même l'affichage de la pagination, comme
Page d'accueil Page précédente 1 2 3 ... 7 8 Page suivante Dernière page
De cette façon, cependant, le manuel officiel ne mentionne pas la méthode de personnalisation du style de pagination. Dans un premier temps, j'ai simplement remplacé le html de la pagination par le texte du précédent. page et la page suivante
Plus tard, j'ai découvert que je pouvais définir moi-même une classe pour remplir cette exigence. Tout d'abord, je dois créer paginate.php dans le répertoire de configuration, le contenu du fichier est
'app\index\pager\gcudPager'//自己的分页类可以随便放,只要命名空间写对 ];
/**首页按钮 * @param string $text * @return string */ protected function GetFirstButton($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( '
// +---------------------------------------------------------------------- namespace app\index\pager; use think\Paginator; class gcudPager extends Paginator { /**首页按钮 * @param string $text * @return string */ protected function GetFirstButton($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 getPreviousButton($text = "上一页") { if ($this->currentPage() <= 1) { return $this->getDisabledTextWrapper($text); } $url = $this->url( $this->currentPage() - 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); } /** * 下一页按钮 * @param string $text * @return string */ protected function getNextButton($text = '下一页') { if (!$this->hasMore) { return $this->getDisabledTextWrapper($text); } $url = $this->url($this->currentPage() + 1); return $this->getPageLinkWrapper($url, $text); } /** * 页码按钮 * @return string */ protected function getLinks() { if ($this->simple) { return ''; } $block = [ 'first' => null, 'slider' => null, 'last' => null, ]; $side = 3; $window = $side * 2; if ($this->lastPage < $window + 6) { $block['first'] = $this->getUrlRange(1, $this->lastPage); } elseif ($this->currentPage <= $window) { $block['first'] = $this->getUrlRange(1, $window + 2); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } elseif ($this->currentPage > ($this->lastPage - $window)) { $block['first'] = $this->getUrlRange(1, 2); $block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage); } else { $block['first'] = $this->getUrlRange(1, 2); $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } $html = ''; if (is_array($block['first'])) { $html .= $this->getUrlLinks($block['first']); } if (is_array($block['slider'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['slider']); } if (is_array($block['last'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['last']); } return $html; } /** * 渲染分页html * @return mixed */ public function render() { if ($this->hasPages()) { if ($this->simple) { return sprintf( '
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!