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">«</a></li> <li><a href="?page=1">1</a></li> <li class="active"><span>2</span></li> <li class="disabled"><span>»</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 Penerangan_
jumlah setiap halaman | |
---|---|
path | |
query | |
fragment | |
var_page | |
Paging parameter boleh ditetapkan oleh memanggil Pas masuk semasa kaedah paging, contohnya: | |
Kelas paging tersuai |
Kemudian ikat semula
$list = Db::name('user')->where('status',1)->paginate([ 'list_rows'=> 20, 'var_page' => 'page', ]);
dalam fail definisi provider.php