Prinsip dan pelaksanaan kelui


. kepada pertanyaan penomboran model. Kod:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
View::assign('list', $list);
// 渲染模板输出
return View::fetch();

Kod keluaran halaman dalam fail templat adalah seperti berikut:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
View::assign('list', $list);
// 渲染模板输出
return View::fetch();
Anda juga boleh menetapkan pembolehubah templat keluaran halaman secara berasingan
<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list|raw}

Kod keluaran halaman dalam fail templat. adalah seperti berikut:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
View::assign('list', $list);
View::assign('page', $page);
// 渲染模板输出
return View::fetch();

Secara lalai, output paging yang dijana adalah Fungsi paging, dengan jumlah data paging dan nombor halaman atas dan bawah hanya perlu diubah suai melalui gaya Kod output paging lalai paging lengkap ialah:

<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page|raw}

Jika anda perlu mendapatkan jumlah data secara berasingan, anda boleh menggunakan

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

untuk lulus dalam Jumlah bilangan rekod

menyokong lulus dalam jumlah bilangan rekod tanpa mengira jumlah secara automatik, untuk contoh:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取总记录数
$count = $list->total();
// 把分页数据赋值给模板变量list
View::assign('list', $list);
// 渲染模板输出
return View::fetch();

Untuk pertanyaan UNION dan beberapa pertanyaan kompleks khas, adalah disyorkan untuk menggunakan kaedah ini untuk terlebih dahulu menanyakan jumlah bilangan rekod secara berasingan, dan kemudian lulus Masukkan kaedah paging

Pemprosesan data selepas paging

menyokong mengarahkan setiap pemprosesan traversal data selepas kelas paging, yang mudah untuk mengubah suai data selepas paging, dan bukannya hanya menambah medan melalui getter model.

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

Jika kelas Db mengendalikan data paging, nilai pulangan perlu digunakan dalam fungsi penutupan setiap kaedah, contohnya:

$list = User::where('status',1)->paginate()->each(function($item, $key){
    $item->nickname = 'think';
});

Paging mudah

Jika anda hanya perlu mengeluarkan output paging dengan hanya halaman atas dan bawah, Anda boleh menggunakan kod halaman ringkas berikut:

$list = Db::name('user')->where('status',1)->paginate()->each(function($item, $key){
    $item['nickname'] = 'think';
    return $item;
});

Kod keluaran mod paging ringkas ialah:

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10, true);
// 把分页数据赋值给模板变量list
View::assign('list', $list);
// 渲染模板输出
return View::fetch();

Memandangkan mod paging ringkas tidak memerlukan pertanyaan jumlah data, ia boleh meningkatkan prestasi pertanyaan.
Parameter paging

Parameter paging utama adalah seperti berikut:

Parameter

Penerangan_


halamanHalaman semasaurl Pathurl Parameter tambahan url anchorpaging variable
<ul class="pager">
<li><a href="?page=1">&laquo;</a></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>
Jika anda perlu lulus dalam keadaan pertanyaan semasa paging, anda boleh menggunakan parameter pertanyaan untuk menyambung parameter pertanyaan tambahanKelas paging tersuaiJika anda perlu menyesuaikan paging, Pemacu paging boleh dilanjutkan.
jumlah setiap halaman
path
query
fragment
var_page
Paging parameter boleh ditetapkan oleh memanggil Pas masuk semasa kaedah paging, contohnya:

Kemudian ikat semula

$list = Db::name('user')->where('status',1)->paginate([
    'list_rows'=> 20,
    'var_page' => 'page',
]);

dalam fail definisi provider.php