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:

rrree

Wenn 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">&laquo;</a></li>
<li><a href="?page=1">1</a></li>
<li class="active"><span>2</span></li>
<li class="disabled"><span>&raquo;</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 🎜>

Unterstützt die direkte Verarbeitung jeder Datendurchquerung nach der Paging-Klasse, sodass die Daten nach dem Paging bequem geändert werden können, anstatt Felder nur über den Getter des Modells zu ergänzen.

// 查询状态为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

Wenn Sie nur eine Ausgabe benötigen Für die Paging-Ausgabe nur der oberen und unteren Seiten können Sie den folgenden prägnanten Paging-Code verwenden:

$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当前页
pathurl路径
queryurl额外参数
fragmenturl锚点
var_page分页变量


Die Einstellung der Paging-Parameter kann beim Aufruf der Paging-Methode übergeben werden, zum Beispiel:

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“.