trinityrank/tailing-slash

TailingSlash 在 URL 结尾添加 '/'

v1.4.0 2022-10-18 11:07 UTC

This package is auto-updated.

Last update: 2024-09-18 15:31:15 UTC


README

Latest Version on Packagist

为 Laravel 框架添加带有尾部斜杠的 URL 格式化和重定向。

安装

步骤 1:安装包

要开始使用 Laravel Trailing Slash,请使用 Composer 命令将包添加到您的 composer.json 项目依赖项中

composer require trinityrank/tailing-slash

步骤 2:服务提供者

安装包后,在您的 config/app.php 中注册 Trinityrank\TailingSlash\RoutingServiceProvider。

    'providers' => [
        /*
        * Package Service Providers...
        */
        // ...
        Trinityrank\TailingSlash\RoutingServiceProvider::class
        // ...
    ],
    'aliases' => [
        // ...
        'UrlGenerator' => Trinityrank\TailingSlash\UrlGenerator::class,
        // ...
    ].

步骤 3:路由

    Route::get('/', function () {
        return view('welcome');
    });

    Route::get('about-us/', function () {
        return view('about');
    });

使用方法

每次使用 Laravel 的某些重定向函数时,都会将尾部斜杠 ("/") 应用于 URL 的末尾。

    return redirect('about/');

    return back()->withInput();

    return redirect()->route('post', ['id' => 1]);

    return redirect()->action('IndexController@about');

注意

存在一个与 Laravel PaginatorLengthAwarePaginator 类覆盖的问题。因此,每次在您的模型、查询构造器等上使用 paginate() 方法时,都必须设置分页链接的当前路径。示例

    $posts = Text::where('is_active', 1)->paginate();
    $posts->setPath(URL::current());

    $posts->links();

分页

  • 使用此方法格式化 blade 组件(tailwind.blade.php)上的分页链接,并用于规范链接(检查 BaseController 中的 cleanCanonicalURL
    UrlGenerator::paginationLinks($url)
  • 在 'web.php' 中添加分页的页面路由。使用与正常归档页面相同的 controllermethod(仅 path 已更改)
  • 将以下内容添加到常规方法之上(而不是之下)
    // Paginate emethod
    Route::get('{slug}/page/{page}', [FrontendController::class, 'resolve'])->name('resolve');
    // Your regulat method
    Route::get('{slug}', [FrontendController::class, 'resolve'])->name('resolve');
  • 在控制器中添加几件事情
    • 在文档顶部使用 UrlGenerator
    • 在方法中添加新的可选参数 $pageNumber
    • 在方法开始处添加 UrlGenerator::paginationCheck 方法
        use Trinityrank\TailingSlash\UrlGenerator;
        // ...
        public function method($slug, $pageNumber = null){
            // This add at the beginning of the method
            UrlGenerator::paginationCheck($pageNumber);
            // ...
        }
  • 方法 paginationCheck 有第二个可选参数,如果默认的分页关键字不是 page