美文网首页
laravel 分页seo浅谈

laravel 分页seo浅谈

作者: 风吹枫落van | 来源:发表于2017-02-23 22:54 被阅读229次

laravel 的分页是非常简单易用的,但是有一点不是非常理想,
默认的分页生成的链接是
users?page=1
这种形式对seo不是非常友好(理论上)
那么我们可能就需要像
users/page/1
这种形式的分页链接
那么怎么做到呢?
我现在有两种方式实现的方式
第一种是我之前项目中采用的,直接上正则
直接在blade中进行正则替换

 {!! preg_replace("~(/?)\?page=~", '/page/', $users->render()) !!}

该正则应该有优化的空间,还望不吝赐教。
当然对应的路由也要相应的配置,很简单,就不展开了。

这种方法效果是实现了,但是真的很没有laravel的风格啊
laravel的风格是什么? composer , package啊
所以来介绍一下第二种方法
laravel-paginateroute
使用方法非常简单,以下摘自readme

第一步

// 要注意对应版本,可到https://packagist.org 方便查看
composer require spatie/laravel-paginateroute

第二步

注册,

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

然后在controller中正常按照laravel的分页写就可以
在页面中这样使用,这个是simplePaginate的对应写法

@if(PaginateRoute::hasPreviousPage())
  <a href="{{ PaginateRoute::previousPageUrl() }}">Previous</a>
@endif

@if(PaginateRoute::hasNextPage($users))
  <a href="{{ PaginateRoute::nextPageUrl($users) }}">Next</a>
@endif

更多使用方法请移步
就是点这里啦

相关文章

  • laravel 分页seo浅谈

    laravel 的分页是非常简单易用的,但是有一点不是非常理想,默认的分页生成的链接是users?page=1这种...

  • laravel 分页 使用layui样式

    laravel分页自带的事bootsharp的分页样式个人更喜欢layui的分页样式,下面介绍如何在laravel...

  • Laravel 自定义分页类

    Laravel --实战篇 (自定义分页类) 前言 : Laravel框架中有封装好的分页类paginate方法,...

  • 数组或者对象分页

    有些数据需要进行手动分页,laravel自带的分页无法实现,可以用array_slice或者laravel集合的方...

  • laravel orm的坑

    坑:1.relationship分页问题laravel的relationship分页,在使用动态属性时,分页错误。...

  • laravel 自带分页与 groupBy共用

    对于laravel来说有很多自带功能,其中laravel的分页就很美观,但是在sql语句中使用groupBy和分页...

  • laravel 基础教程 —— 分页

    分页 简介 在其他框架中,分页通常是比较痛苦的。laravel 使其变的非常简单。laravel 可以根据当前页面...

  • laravel自定义分页

    Paginate分页 手动分页详解 laravel自带的分页功能十分强大,只不过,在使用 groupBy 语句的分...

  • 2019-03-31Contract 契约模式

    浅谈Laravel中的设计模式(四) Contract 契约模式 技术预备:熟悉Laravel的使用 契约模式(C...

  • laravel 接收参数进行分页

    本篇文章简单介绍利用laravel的Eloquent接收参数进行分页。文章基于laravel5.3的Eloquen...

网友评论

      本文标题:laravel 分页seo浅谈

      本文链接:https://www.haomeiwen.com/subject/fzrvwttx.html