【问题标题】:How to beautify pagination URL in laravel 6.x如何在 laravel 6.x 中美化分页 URL
【发布时间】:2020-04-05 13:45:31
【问题描述】:

我有一个使用 pagination 的网站。但是该网址正在制作分页网址,例如

http://website.com/user?page=2

但我想把它美化为

http://website.com/user/2

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

【问题讨论】:

  • 这能回答你的问题吗? Laravel pagination pretty URL
  • @Collin 这是一个问题,但这是针对 laravel 6 的。这对我来说有点困惑。

标签: laravel pagination laravel-6 pretty-urls laravel-6.2


【解决方案1】:

漂亮的 Laravel 分页

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

目标

www.website.com/user?page=1 → →→→ www.website.com/user/1

第一步:

在路线:

Route::get('/user/{page?}', 'MainController@index')->where('page', '[0-9]+')->name('areasearch');
  • where('page', '[0-9]+') 这段代码是为了维护页面参数只接受数值。
  • {页面?}在这里?问号用于使值可选。

第二步: 在主控制器中:

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

第三步: 观点:

use App\Http\Controllers\MainController; $MainController= new MainController(); 
@extends('master')
@section('maincontent')
    {!!$MainController->paginate_with_custom_path($data)!!}
@endsection

就是这样。我们成功更改了网址。

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 2022-09-23
    • 2020-08-13
    • 2020-04-25
    • 2014-11-22
    • 2018-06-01
    • 2021-10-31
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多