Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die Paging-Funktion von ThinkPHP6

So implementieren Sie die Paging-Funktion von ThinkPHP6

WBOY
WBOYOriginal
2023-06-20 21:15:142625Durchsuche

ThinkPHP ist ein sehr beliebtes PHP-Entwicklungsframework und seine neueste Version, ThinkPHP6, wurde in Bezug auf Leistung und Benutzerfreundlichkeit erheblich verbessert. Die Paging-Funktion ist eine sehr häufige Funktion in der Webentwicklung, und ThinkPHP6 bietet auch eine sehr praktische Paging-Methode. In diesem Artikel wird erläutert, wie die Paging-Funktion von ThinkPHP6 implementiert wird.

1. Verstehen Sie die Paging-Funktion

Wenn in Webanwendungen der Datensatz sehr groß ist, führt die Anzeige aller Ergebnisse auf einer Seite dazu, dass die Seite zu langsam lädt und es für Benutzer außerdem unpraktisch ist, Daten anzuzeigen und zu verwalten . Die Paging-Funktion besteht darin, den Datensatz in mehrere Seiten aufzuteilen, und auf jeder Seite wird nur ein Teil der Daten angezeigt. Dies kann die Ladezeit der Seite erheblich verkürzen und den Benutzern gleichzeitig das Durchsuchen und Verwalten von Daten erleichtern.

2. Implementieren Sie die Paging-Funktion von ThinkPHP6

ThinkPHP6 bietet eine sehr praktische Paging-Methode, die in nur wenigen einfachen Schritten implementiert werden kann.

  1. Installieren Sie die Paginierungskomponente.

Da ThinkPHP6 eine Paginierungskomponente bereitstellt, müssen Sie den folgenden Code zur Datei „composer.json“ hinzufügen:

"require": {
    "topthink/think-pagination": "^1.0"
}

Dann verwenden Sie den Befehl composer update, um die Komponente zu installieren . composer update安装组件。

  1. 在控制器中使用分页

在控制器中使用分页的步骤如下:

首先,获取数据表中的记录总数。使用以下代码:

$total = Db::name('user')->count();

其中,Db是ThinkPHP6中的数据库操作类,name('user')表示获取user表的数据,count()表示获取数据总数。

接下来,设置每页显示的记录数和当前页码数。使用以下代码:

$pageSize = 10;   //每页显示10条记录
$pageNo = 1;      //默认显示第1页
if (!empty($_GET['page'])) {
    $pageNo = intval($_GET['page']);   //获取当前页码数
}

其中,intval()函数用于将字符串转换为整数。

接着,根据每页显示的记录数和当前页码数计算出需要显示的记录范围。使用以下代码:

$offset = ($pageNo - 1) * $pageSize;
$rows = Db::name('user')->limit($offset, $pageSize)->select();

其中,limit()方法用于限制查询结果的范围,第一个参数表示偏移量,第二个参数表示获取的记录数。

最后,将获取的记录传递给视图,并调用Pagination组件进行分页显示。使用以下代码:

$this->assign('rows', $rows);
$this->assign('total', $total);
$this->assign('pageSize', $pageSize);
$this->assign('pageNo', $pageNo);
return $this->fetch()->extend('pagination');

其中,assign()方法用于传递变量给模板,fetch()方法用于调用模板文件,extend('pagination')表示使用Pagination组件进行分页显示。

  1. 在视图中实现分页

在视图文件中实现分页的步骤如下:

首先,在页面底部显示分页栏。使用以下代码:

<div class="pagination">
    {$page->render()}
</div>

其中,$page表示Pagination实例,render()方法用于生成分页HTML代码。

接着,设置分页样式。使用以下代码:

    hinkacadeView::getPager()->setConfig('prev', '上一页');
    hinkacadeView::getPager()->setConfig('next', '下一页');
    hinkacadeView::getPager()->setConfig('theme', '%totalRow% %header% %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%');

其中,setConfig()方法用于设置分页样式。%totalRow%表示显示总记录数,%header%表示当前页码,%upPage%表示上一页,%downPage%表示下一页,%first%表示第一页,%prePage%表示上一组页码,%linkPage%表示当前页码组,%nextPage%表示下一组页码,%end%表示最后一页。

注意:在设置分页样式之前,需要调用use thinkPaginator;

    Paging im Controller verwenden
    1. Die Schritte zur Verwendung von Paging im Controller sind wie folgt:

    Ermitteln Sie zunächst die Gesamtzahl der Datensätze in der Datentabelle. Verwenden Sie den folgenden Code:

    use thinkDb;
    use thinkPaginator;
    
    class UserController extends Controller
    {
        public function index()
        {
            $total = Db::name('user')->count();
            $pageSize = 10;   //每页显示10条记录
            $pageNo = 1;      //默认显示第1页
            if (!empty($_GET['page'])) {
                $pageNo = intval($_GET['page']);   //获取当前页码数
            }
            $offset = ($pageNo - 1) * $pageSize;
            $rows = Db::name('user')->limit($offset, $pageSize)->select();
            $this->assign('rows', $rows);
            $this->assign('total', $total);
            $this->assign('pageSize', $pageSize);
            $this->assign('pageNo', $pageNo);
            Paginator::useBootstrap();
            Paginator::currentPageResolver(function () use ($pageNo) {
                return $pageNo;
            });
            Paginator::pagination($total, $pageSize, $pageNo);
                hinkacadeView::getPager()->setConfig('prev', '上一页');
                hinkacadeView::getPager()->setConfig('next', '下一页');
                hinkacadeView::getPager()->setConfig('theme', '%totalRow% %header% %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%');
            return $this->fetch()->extend('pagination');
        }
    }

    Unter diesen ist Db die Datenbankbetriebsklasse in ThinkPHP6, name('user') bedeutet, die Daten der Benutzertabelle abzurufen, und count() bedeutet, die Gesamtzahl der Daten abzurufen.

    Als nächstes legen Sie die Anzahl der auf jeder Seite angezeigten Datensätze und die aktuelle Seitennummer fest. Verwenden Sie den folgenden Code:

    rrreee🎜wobei die Funktion intval() verwendet wird, um eine Zeichenfolge in eine Ganzzahl umzuwandeln. 🎜🎜Als nächstes berechnen Sie den Datensatzbereich, der angezeigt werden muss, basierend auf der Anzahl der auf jeder Seite angezeigten Datensätze und der aktuellen Seitenzahl. Verwenden Sie den folgenden Code: 🎜rrreee🎜Unter diesen wird die Methode limit() verwendet, um den Bereich der Abfrageergebnisse einzuschränken. Der erste Parameter stellt den Offset dar und der zweite Parameter stellt die Anzahl der erhaltenen Datensätze dar. 🎜🎜Übergeben Sie abschließend die erhaltenen Datensätze an die Ansicht und rufen Sie die Paginierungskomponente für die Paginierungsanzeige auf. Verwenden Sie den folgenden Code: 🎜rrreee🎜 Darunter wird die Methode „assign()“ verwendet, um Variablen an die Vorlage zu übergeben, die Methode „fetch()“ wird zum Aufrufen der Vorlagendatei verwendet und „extend('pagination‘)“ bedeutet, die Paginierung zu verwenden Komponente für die Paginierungsanzeige. 🎜
      🎜 Paging in der Ansicht implementieren 🎜🎜🎜Die Schritte zum Implementieren von Paging in der Ansichtsdatei sind wie folgt: 🎜🎜Zeigen Sie zunächst die Paging-Leiste unten auf der Seite an. Verwenden Sie den folgenden Code: 🎜rrreee🎜 Unter diesen stellt $page die Paginierungsinstanz dar und die render()-Methode wird zum Generieren von Paginierungs-HTML-Code verwendet. 🎜🎜Als nächstes legen Sie den Seitenstil fest. Verwenden Sie den folgenden Code: 🎜rrreee🎜 Unter anderem wird die Methode setConfig() verwendet, um den Paging-Stil festzulegen. %totalRow% stellt die Gesamtzahl der angezeigten Datensätze dar, %header% stellt die aktuelle Seitenzahl dar, %upPage% stellt die vorherige Seite dar, %downPage% stellt die nächste Seite dar, %first% stellt die erste Seite dar, %prePage% stellt die vorherige Seite dar Seitenzahl, %linkPage% stellt die aktuelle Seitenzahlgruppe dar, %nextPage% stellt die nächste Seitenzahlgruppe dar und %end% stellt die letzte Seite dar. 🎜🎜Hinweis: Bevor Sie den Paging-Stil festlegen, müssen Sie den Namespace use thinkPaginator; aufrufen. 🎜🎜🎜Vollständiges Codebeispiel🎜🎜🎜Das Folgende ist ein vollständiges Codebeispiel zur Implementierung der Paging-Funktion von ThinkPHP6: 🎜rrreee🎜 3. Zusammenfassung🎜🎜Durch die oben genannten Schritte haben wir die Paging-Funktion von ThinkPHP6 erfolgreich implementiert. Ich glaube, dass Leser durch die Einführung in diesem Artikel ganz einfach Paging-Funktionen zu ihren Websites hinzufügen und die Benutzererfahrung der Website verbessern können. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Paging-Funktion von ThinkPHP6. 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