>PHP 프레임워크 >Laravel >Laravel Paging SEO에 대한 간단한 이야기

Laravel Paging SEO에 대한 간단한 이야기

藏色散人
藏色散人앞으로
2020-04-14 13:38:053614검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제