资讯专栏INFORMATION COLUMN

如何使 Laravel 项目中的 URL 更友好化

JerryC / 1350人阅读

说明

cviebrock/eloquent-sluggable 是一款可对 Laravel 项目中的 URL 进行友好化的扩展包。

本文章由 The EST Group 成员 @Kelvin 撰写, 首发地为 PHPHub 社区.

Demo Demo 截图

运行 Demo

Demo 代码请见:

https://github.com/CycloneAxe/est-eloque...

请参照此文档运行 Demo:

https://phphub.org/topics/1902

场景说明

在我们平时的 Laravel 项目中, 若有一篇 title 为 "My Dinner With André & François", id 为 5 的文章, 一般会生成如下链接:

http://example.com/post/5

但如果我们想使用 title 来生成文章的 url, 这时 url 就会变成下面这样:

http://example.com/post/My+Dinner+With+A...

可以看到生成的 url 看起来并不是特别清晰, 且对 SEO 也不友好. 这时我们就需要使用到 eloquent-sluggable 来对 url 进行转换了, 转换后的结果如下:

http://example.com/post/my-dinner-with-a...

这时可以明显看到转换后的 url 更加清晰易读, 对 SEO 也更加友好.

文章概览

安装;

集成;

使用;

1. 安装

1). 使用 composer 安装:

composer require cviebrock/eloquent-sluggable

2). 修改 config/app 文件,在 providers 数组内追加如下内容

"providers" => [
    // ...
    "CviebrockEloquentSluggableSluggableServiceProvider",
];
2. 集成

本文假设你已经有了一个使用 Laravel 编写的博客系统,接下来通过对博客文章 (Post 表) 添加对 SEO 友好化的 Url 为例:

1). 修改 Post Model

use CviebrockEloquentSluggableSluggableInterface;
use CviebrockEloquentSluggableSluggableTrait;

class Post extends Model implements SluggableInterface {
  use SluggableTrait;
  
  protected $sluggable = [
    "build_from" => "title",
    "save_to"    => "slug",
    ];
}

2). Post 表追加 slug 字段

php artisan sluggable:table posts

3). 数据库 migration

$ composer dump-autoload
$ php artisan migrate
3. 使用

在每次创建一篇新文章的同时,slug 字段将会自动采用文章 title 作为固定链接的地址

$post = new Post([
    "title" => "My Awesome Blog Post",
]);

$post->save();

文章创建完成后, 您可以通过 $post->slug 来获取文章的 slug.

更多的例子请移步 官方文档 参考.


欢迎关注 LaravelTips, 一个专注于为 Laravel 开发者服务, 致力于帮助开发者更好的掌握 Laravel 框架, 提升开发效率的微信公众号.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21471.html

相关文章

  • 10个非常好用的 Laravel 辅助函数

    摘要:要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。函数接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。更新方法返回布尔值,但由于用了,所以它将返回。这对调试非常有用。函数根据给定的字符串生成一个友好的。 Laravel包含各种全局辅助函数(helper), 你可以使用它们使开发工作流程更加轻松。 在这里,我将会列一下10个最好的 Laravel h...

    liangzai_cool 评论0 收藏0
  • 十个推荐使用的 Laravel 的辅助函数

    摘要:文章转自包含各种全局辅助函数。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。该值将被传递给闭包,然后该值将被返回。方法返回布尔值,但由于用了,所以它将返回。 showImg(https://segmentfault.com/img/remote/1460000018944915?w=1408&h=846); 文章转自:h...

    CastlePeaK 评论0 收藏0
  • Laravel深入学习2 - 控制反转容器

    摘要:控制反转容器控制反转使依赖注入变得更加便捷。有瑕疵控制反转容器是实现的控制翻转容器的一种替代方案。容器的独立使用即使没有使用框架,我们仍然可以在项目中使用安装组件来使用的控制反转容器。在没有给定任何信息的情况下,容器是无法实例化相关依赖的。 声明:本文并非博主原创,而是来自对《Laravel 4 From Apprentice to Artisan》阅读的翻译和理解,当然也不是原汁原味...

    worldligang 评论0 收藏0
  • PJAX,站点加速之翼

    摘要:是一款可爱的小插件,将和浏览器的封装到一起,解决了单纯使用进行无刷新加载时对搜索引擎的不友好,并且节省了开支提高了浏览速度,明显地优化了用户体验。是提供的,是对浏览器历史对象的增强。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可爱的 jQuery 小插件,将 a...

    QiuyueZhong 评论0 收藏0
  • PJAX,站点加速之翼

    摘要:是一款可爱的小插件,将和浏览器的封装到一起,解决了单纯使用进行无刷新加载时对搜索引擎的不友好,并且节省了开支提高了浏览速度,明显地优化了用户体验。是提供的,是对浏览器历史对象的增强。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可爱的 jQuery 小插件,将 a...

    WilsonLiu95 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<