Paging-Prinzip und Implementierung
Paging-Implementierung
ThinkPHP verfügt über eine integrierte Paging-Implementierung. Es ist sehr einfach, den Daten eine Paging-Ausgabefunktion hinzuzufügen Rufen Sie die Paginate-Methode auf, wenn Sie die Db-Klasse abfragen:
// 查询状态为1的用户数据 并且每页显示10条数据 $list = Db::name('user')->where('status',1)->paginate(10); // 把分页数据赋值给模板变量list View::assign('list', $list); // 渲染模板输出 return View::fetch();
kann auch in den Paging-Abfragecode des Modells geändert werden:
// 查询状态为1的用户数据 并且每页显示10条数据 $list = User::where('status',1)->paginate(10); // 把分页数据赋值给模板变量list View::assign('list', $list); // 渲染模板输出 return View::fetch();
Der Paging-Ausgabecode in der Vorlagendatei lautet wie folgt:
<div> <ul> {volist name='list' id='user'} <li> {$user.nickname}</li> {/volist} </ul> </div> {$list|raw}
Sie können die Vorlagenvariable für die Paging-Ausgabe auch separat zuweisen
// 查询状态为1的用户数据 并且每页显示10条数据 $list = User::where('status',1)->paginate(10); // 获取分页显示 $page = $list->render(); // 模板变量赋值 View::assign('list', $list); View::assign('page', $page); // 渲染模板输出 return View::fetch();
Der Paging-Ausgabecode in der Vorlagendatei lautet wie folgt:
<div> <ul> {volist name='list' id='user'} <li> {$user.nickname}</li> {/volist} </ul> </div> {$page|raw}
Standardmäßig ist die generierte Paging-Ausgabe eine vollständige Paging-Funktion mit den gesamten Paging-Daten und den oberen und unteren Seitenzahlen, die nur übergeben werden müssen Ändern Sie einfach den Stil. Der durch vollständiges Paging generierte Standard-Paging-Ausgabecode lautet:
rrreeWenn Sie die Gesamtdaten separat abrufen müssen, können Sie
rrre verwenden eeÜbergabe der Gesamtzahl der Datensätze
unterstützt die Übergabe der Gesamtzahl der Datensätze ohne automatische Berechnung der Gesamtzahl, zum Beispiel:
<ul class="pagination"> <li><a href="?page=1">«</a></li> <li><a href="?page=1">1</a></li> <li class="active"><span>2</span></li> <li class="disabled"><span>»</span></li> </ul>
für U Für NION-Abfragen und einige spezielle komplexe Abfragen wird empfohlen, diese Methode zu verwenden, um zunächst die Gesamtzahl der Datensätze separat abzufragen und dann die Paging-Methode
Datenverarbeitung nach dem Paging < zu übergeben 🎜>
// 查询状态为1的用户数据 并且每页显示10条数据 $list = User::where('status',1)->paginate(10); // 获取总记录数 $count = $list->total(); // 把分页数据赋值给模板变量list View::assign('list', $list); // 渲染模板输出 return View::fetch();Wenn die Db-Klasse Paging-Daten verarbeitet, muss der Rückgabewert in der Abschlussfunktion jeder Methode verwendet werden, zum Beispiel:
// 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000 $list = User::where('status',1)->paginate(10,1000); // 获取分页显示 $page = $list->render(); // 模板变量赋值 View::assign('list', $list); View::assign('page', $page); // 渲染模板输出 return View::fetch();
Einfaches Paging
$list = User::where('status',1)->paginate()->each(function($item, $key){ $item->nickname = 'think'; });Der Ausgabecode des prägnanten Paging-Modus lautet:
$list = Db::name('user')->where('status',1)->paginate()->each(function($item, $key){ $item['nickname'] = 'think'; return $item; });Da der prägnante Paging-Modus dies nicht erfordert Abfragen der Gesamtzahl der Daten, sodass die Abfrageleistung verbessert werden kann.
Paging-Parameter
Die wichtigsten Paging-Parameter sind wie folgt:参数 | 描述 |
---|---|
list_rows | 每页数量 |
page | 当前页 |
path | url路径 |
query | url额外参数 |
fragment | url锚点 |
var_page | 分页变量 |
rrre Wenn Sie das Paging anpassen müssen, können Sie einen Paging-Treiber erweitern.
Dann binden Sie
// 查询状态为1的用户数据 并且每页显示10条数据 $list = User::where('status',1)->paginate(10, true); // 把分页数据赋值给模板变量list View::assign('list', $list); // 渲染模板输出 return View::fetch();
erneut in die Definitionsdatei „provider.php“.