前言
最近在一些專案中經常要用到url優化,也就是要生成slug,正好部落格也要上這個功能,網上找了些都不是太好用,或者不支援中文,或者比較麻煩,自己之前寫過一個生成slug的,但是還需要寫一些與model關聯的方法,比如修改器,觀察器等,索性就整合到一起,方便自己也方便大家吧。
github地址:https://github.com/jourdon/laravel-sluggable 來一波star吧,
說明
我的部落格有很多文章,很多分類,他們的連結是這樣的
//文章
http://example.com/post/1
http://example.com/post/2
//分類
http://example.com/category/1
http://example.com/category/2
這看起來非常不友好,我希望將後面的id換成文章的村裡或者分類的名稱,這樣看起來比較友好,從連結就能看出來文章的內容,對搜尋引擎也比較友好,像這樣:
http://example.com/post/php-is-the-best-language-in-the-world
http://example.com/post/yes-i-think-so
//分類
http://example.com/category/php
http://example.com/category/laravel
你只需要安裝本擴充套件包,你不需要另外做什麼,它會自動幫你搞定,可以根據你的Eloquent模型生成相應的slug,讓你的url更加的友好。
要求
- PHP版本: 7.1+
- laravel版本:5.5+
安裝
1、 使用 Composer 安裝:
composer require jourdon/sluggable
2、 配置
本擴充套件包本身不需要配置檔案,也無需配置,但本擴充套件包依賴於 laravel-slug ,所以需要匯出
laravel-slug
的配置檔案,具體請前往 laravel-slug 檢視並配置。
3、 新增Slug欄位
你的資料表中需要有slug欄位,執行下面的命令生成遷移檔案,以Post模型為例:
php artisan jourdon:make_slug Post
4、 執行遷移
php artisan migrate
如果你的資料表中已經有slug欄位,請忽略 3,4
5、將Eloquent模型的slug加入快取,注意這裡,Laravel預設的Model目錄在app下,假如你的Eloquent模型都放在app/models目錄下,你需要在Eloquent模型前加上Models/
php artisan jourdon:make_cache Models/Post
使用
還是以Post模型為例,我們需要使用SlugTrait
use Jourdon\Sluggable\Traits\SlugTrait;
class Post extends Model
{
use SlugTrait;
.
.
.
}
如果你還需要將Category的URL也變得這麼漂亮,只需要重複3,4,5即可。
OK. 已經完成了,去看看你的連結吧,
作者: Jourdon
本文地址: https://www.qiehe.net/posts/laravel-sluggable-make-your-project-url-more-friendly-automatically-generate-slug-according-to-the-model
轉載請註明出處!
如果覺得我的文章對您有用,請隨意打賞。您的支援將鼓勵我繼續創作!