Explication détaillée du code de Laravel pour implémenter le remplacement du style de pagination

黄舟
Libérer: 2023-03-16 10:54:01
original
1458 Les gens l'ont consulté

Cet article vous présente principalement les informations pertinentes sur l'implémentation par Laravel du remplacement du style de pagination, qui implémente la fonction d'ajout de première et de dernière pages. L'article le présente en détail à travers un exemple de code, qui sera une certaine référence pour l'étude de chacun. ou le travail. La valeur de l'apprentissage, les amis qui en ont besoin, venez jeter un œil ci-dessous.

Avant-propos

Cet article présente principalement le contenu pertinent sur le remplacement du style de pagination Laravel et le partage pour votre référence et votre étude. Je n’en dis rien ci-dessous. Assez dit, jetons un œil à l’introduction détaillée.

La méthode est la suivante :

1 Personnalisez une classe (le code est le suivant), placez-la où vous le souhaitez, payez. attention à l'espace de noms.

2. Appel de sortie de modèle {!! $data->render(new AppHttpControllersShmilyThreePresenter($data)) !!}

Style final

Code d'implémentation


<?php

//创建继承自 Illuminate\Pagination\BootstrapThreePresenter 类,这里我把类放在了Controllers下面,需要修改BootstrapThreePresenter 类的哪些方法就重写哪个方法。如果觉得默认的bootstrap样式和你项目的样式不符,可以自定义样式。
namespace App\Http\Controllers;
use Illuminate\Contracts\Pagination\Paginator as PaginatorContract;
use Illuminate\Contracts\Pagination\Presenter as PresenterContract;

class ShmilyThreePresenter extends \Illuminate\Pagination\BootstrapThreePresenter
{
 /**
  * Convert the URL window into Bootstrap HTML.
  *
  * @return string
  */
 public function render()
 {
  if ($this->hasPages()) {
   return sprintf(
    &#39;<ul class="am-pagination">%s %s %s %s %s</ul>&#39;,//自定义class样式
    $this->firstPage(),//添加首页方法
    $this->getPreviousButton(&#39;上一页&#39;),
    $this->getLinks(),
    $this->getNextButton(&#39;下一页&#39;),
    $this->last()//添加尾页方法
   );
  }

  return &#39;&#39;;
 }

 /**
  * Get HTML wrapper for an available page link.
  *
  * @param string $url
  * @param int $page
  * @param string|null $rel
  * @return string
  */
 protected function getAvailablePageWrapper($url, $page, $rel = null)
 {
  $rel = is_null($rel) ? &#39;&#39; : &#39; rel="&#39;.$rel.&#39;"&#39;;

  return &#39;<li><a href="&#39;.htmlentities($url).&#39;" rel="external nofollow" &#39;.$rel.&#39;>&#39;.$page.&#39;</a></li>&#39;;
  //这里li标签可以添加你自己的class样式
 }

 /**
  * Get HTML wrapper for disabled text.
  *
  * @param string $text
  * @return string
  */
 protected function getDisabledTextWrapper($text)
 {
  return &#39;<li class="disabled"><span>&#39;.$text.&#39;</span></li>&#39;;
 }

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


 /**
  * Get the next page pagination element.
  *
  * @param string $text
  * @return string
  */
  //新建首页方法
 public function firstPage($text = &#39;首页&#39;)
 {
  // If the current page is greater than or equal to the last page, it means we
  // can&#39;t go any further into the pages, as we&#39;re already on this last page
  // that is available, so we will make it the "next" link style disabled.
  if ($this->paginator->currentPage() <= 1) {
   return $this->getDisabledTextWrapper($text);
  }
  $url = $this->paginator->url(1);

  return $this->getPageLinkWrapper($url, $text, &#39;first&#39;);
 }

 /**
  * Get the next page pagination element.
  *
  * @param string $text
  * @return string
  */
  //新建尾页方法
 public function last($text = &#39;尾页&#39;)
 {
  // If the current page is greater than or equal to the last page, it means we
  // can&#39;t go any further into the pages, as we&#39;re already on this last page
  // that is available, so we will make it the "next" link style disabled.

  $url = $this->paginator->url($this->paginator->lastPage());

  return $this->getPageLinkWrapper($url, $text, &#39;last&#39;);
 }

}
Copier après la connexion

Résumé

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal