批改状态:合格
老师批语:完成的不错,继续加油
参考课程内容,完成后台文章列表及分页功能
数据分页最简单的是使用“查询构造器”或 Eloquent query 的 paginate 方法。
paginate 方法根据用户浏览的当前页码,自动设置恰当的偏移量 offset 和限制数 limit。
默认情况下,HTTP 请求中的 page 查询参数值被当作当前页的页码。Lavarel 自动侦测该值,并自动将其插入到分页器生成的链接中。
Lavarel5.8 无法高效地实现使用了 groupBy 语句的分页操作。如果需要使用对使用了 groupBy 的结果集分页,需要手工查询数据库并创建分页。
$users = DB::table('users')->paginate(10);$users = DB::table('users')->simplePaginate(10);$users = App\User::paginate(10);$users = User::where('votes', '>', 100)->simplePaginate(10);$users = User::where('votes', '>', 100)->paginate(10);
<div class="container">@foreach ($users as $user){{ $user->name }}@endforeach</div>{{ $users->links() }}
$users = App\User::paginate(15);
$users->withPath('custom/url');{{ $users->appends(['sort' => 'votes'])->links() }}{{ $users->onEachSide(5)->links() }}{{ $paginator->links('view.name', ['foo' => 'bar']) }}php artisan vendor:publish --tag=laravel-paginationuse Illuminate\Pagination\Paginator;
public function boot()
{
Paginator::defaultView('view-name');
Paginator::defaultSimpleView('view-name');
}namespace App\Http\Controllers\Admins;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
// 内容管理
class Content extends Controller {
// 内容列表
public function index(Request $req) {
// 取出type对应的字段名称(与视图中的选项一一对应)$dbTitle = [0 => 'title', 1 => 'title', 2 => 'cate_id', 3 => 'author', 4 => 'status'];//查询参数:$type = (int) ($req->type);// $wd = ($type==4)?strtotime(trim($req->wd)):trim($req->wd);$wd = trim($req->wd);// 给分页组件传参数appends$appends = ['type' => $type, 'wd' => $wd];//搜索符合条件的数据$data = DB::table('xpcms_article')->where($dbTitle[$type], 'like', '%' . $wd . '%')->pages(2, $appends);// 构造data参数,传给视图$data['type'] = $type;$data['wd'] = $wd;return view('admins/content/index', $data);}public function add() {return view('admins/content/add', $data);}
}
```

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号