Laravel의 페이징은 매우 간단하고 사용하기 쉽지만 한 가지 이상적이지 않습니다.
페이징에 의해 생성된 기본 링크는
users?page=1
이 양식은 (이론상) SEO에 그다지 친숙하지 않습니다.
그러면 뭔가가 필요할 수 있습니다.
users/page/1
이런 형태의 페이지네이션 링크
그럼 어떻게 해야 할까요?
이제 이를 구현하는 두 가지 방법이 있습니다
첫 번째 방법은 정규식을 직접 사용하여 이전 프로젝트에서 채택했습니다.
블레이드에서 직접 정규식을 바꿉니다
{!! preg_replace("~(/?)\?page=~", '/page/', $users->render()) !!}
이 정규식에는 최적화할 여지가 있어야 합니다. 주저하지 말고 가르쳐 주셨으면 좋겠습니다.
물론 해당 경로도 그에 맞게 구성해야 합니다. 매우 간단하므로 더 이상 설명하지 않겠습니다.
이 방법을 사용하면 효과는 얻을 수 있지만 실제로는 라라벨 스타일이 없습니다.
라라벨 스타일은 무엇인가요? Composer, package
그럼 두 번째 방법을 소개하겠습니다
laravel-paginateroute
사용법은 아주 간단합니다. 다음은 readme에서 발췌한 내용입니다
첫 번째 단계
// 要注意对应版本,可到https://packagist.org 方便查看 composer require spatie/laravel-paginateroute
두 번째 단계
Register,
// config/app.php 'providers' => [ ... 'Spatie\PaginateRoute\PaginateRouteServiceProvider', ]; 'aliases' => [ ... 'PaginateRoute' => 'Spatie\PaginateRoute\PaginateRouteFacade', ];
세 번째 단계
// app/Providers/RouteServiceProvider.php use PaginateRoute; // ... public function boot(Router $router) { PaginateRoute::registerMacros(); parent::boot($router); }
라우팅에
를 사용하세요
// app/Http/routes.php // Generates /users & /users/page/{page} Route::paginate('users', 'UsersController@index');
그러면 두 개의 경로가 생성됩니다
/users /users/page/{page}
그런 다음 laravel의 페이징에 따라 정상적으로 컨트롤러에 작성하세요
페이지에서 이렇게 사용하세요. simplePaginate Writing method
@if(PaginateRoute::hasPreviousPage()) <a href="{{ PaginateRoute::previousPageUrl() }}">Previous</a> @endif @if(PaginateRoute::hasNextPage($users)) <a href="{{ PaginateRoute::nextPageUrl($users) }}">Next</a> @endif
의 대응: "laravel tutorial"
위 내용은 Laravel Paging SEO에 대한 간단한 이야기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!