Heim >Backend-Entwicklung >PHP-Tutorial >Laravel implementiert die Ersetzung des Paging-Stils

Laravel implementiert die Ersetzung des Paging-Stils

巴扎黑
巴扎黑Original
2017-09-26 10:07:261703Durchsuche

Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zur Implementierung des Paginierungsstil-Ersatzes durch Laravel ein, der die Funktion des Hinzufügens der ersten und letzten Seite implementiert. Der Artikel führt sie ausführlich anhand von Beispielcode ein, der eine gewisse Referenz für das Studium aller sein wird oder Arbeit, Freunde, die es brauchen, schauen Sie sich unten um.

Vorwort

Dieser Artikel stellt hauptsächlich den relevanten Inhalt zum Ersetzen des Laravel-Paginierungsstils vor und teilt ihn als Referenz und zum Studium. Um weiter unten nichts zu sagen, werfen wir einen Blick auf die ausführliche Einleitung.

Die Methode ist wie folgt:

1. Passen Sie eine Klasse an (der Code lautet wie folgt), platzieren Sie sie an der gewünschten Stelle und zahlen Sie Aufmerksamkeit auf den Namensraum.

2. Vorlagenausgabeaufruf {!! $data->render(new AppHttpControllersShmilyThreePresenter($data)) !!}

Endgültiger Stil

Implementierungscode


<?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;);
 }

}

Das obige ist der detaillierte Inhalt vonLaravel implementiert die Ersetzung des Paging-Stils. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn