说明
是一款可对 Laravel 项目中的 URL 进行友好化的扩展包。
本文章由 成员 撰写, 首发地为 .
Demo
Demo 截图
运行 Demo
Demo 代码请见:
请参照此文档运行 Demo:
场景说明
在我们平时的 Laravel 项目中, 若有一篇 title 为 "My Dinner With André & François", id 为 5 的文章, 一般会生成如下链接:
但如果我们想使用 title 来生成文章的 url, 这时 url 就会变成下面这样:
可以看到生成的 url 看起来并不是特别清晰, 且对 SEO 也不友好. 这时我们就需要使用到 eloquent-sluggable
来对 url 进行转换了, 转换后的结果如下:
这时可以明显看到转换后的 url 更加清晰易读, 对 SEO 也更加友好.
文章概览
安装;
集成;
使用;
1. 安装
1). 使用 composer 安装:
composer require cviebrock/eloquent-sluggable
2). 修改 config/app
文件,在 providers
数组内追加如下内容
'providers' => [ // ... 'Cviebrock\EloquentSluggable\SluggableServiceProvider',];
2. 集成
本文假设你已经有了一个使用 Laravel 编写的博客系统,接下来通过对博客文章 (Post 表) 添加对 SEO 友好化的 Url 为例:
1). 修改 Post Model
use Cviebrock\EloquentSluggable\SluggableInterface;use Cviebrock\EloquentSluggable\SluggableTrait;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 框架, 提升开发效率的微信公众号.