首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在laravel 6.x中美化分页URL

如何在laravel 6.x中美化分页URL
EN

Stack Overflow用户
提问于 2019-12-12 15:56:55
回答 1查看 383关注 0票数 0

我有一个网站,在那里我使用了分页。但是url正在生成分页url,例如

代码语言:javascript
运行
复制
http://website.com/user?page=2

但我想把它美化成

代码语言:javascript
运行
复制
http://website.com/user/2

我正在使用laravel 6。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 17:29:46

Pretty Laravel分页

没有官方的方法来美化laravel分页代码。所以我写了我自己的代码,最后它可以工作了。

目标

→→→→网址: www.website.com/user?page=1

Step1:

在路由中:

代码语言:javascript
运行
复制
Route::get('/user/{page?}', 'MainController@index')->where('page', '[0-9]+')->name('areasearch');

  • where(' page ','0-9+')这段代码是用来维护页面参数在这里只接受数字value.
  • {page?}吗?问号表示将该值设为可选。

Step2:MainController中的

代码语言:javascript
运行
复制
public function index(Request $request){
    if(isset($request->page) && $request->page<1)
        $page = 1;
    else
        $page = $request->page;
    $user = User::ALL();
    $data=$this->paginateArray(user,$page);
    $data=$data->setPath($request->url());
    return view('index')->with('data',$data);
}
public function paginateArray($user='', $page = 1)
    {
    $currentPage = $page;
    $user_collection = collect($user);
    $perPage = 50;
    $paginatedItems = new LengthAwarePaginator($user_collection->forPage($currentPage, $perPage) , $user_collection->count(), $perPage, $page);
    return $paginatedItems;
    }
public function paginate_with_custom_path($data)
    {
    $links = $data->links('pagination.paginator');
    $patterns = '#\?page=#';
    $replacements = '/';
    $one = preg_replace($patterns, $replacements, $links);
    $pattern2 = '#/([1-9]+[0-9]*)/([1-9]+[0-9]*)#';
    $replacements2 = '/$2';
    $paginate_links = preg_replace($pattern2, $replacements2, $one);
    return $paginate_links;
    }

Step3:视图中的

代码语言:javascript
运行
复制
use App\Http\Controllers\MainController; $MainController= new MainController(); 
@extends('master')
@section('maincontent')
    {!!$MainController->paginate_with_custom_path($data)!!}
@endsection

仅此而已。我们成功地更改了url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59299985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档