說明
cviebrock/eloquent-sluggable 是一款可對 Laravel 項(xiàng)目中的 URL 進(jìn)行友好化的擴(kuò)展包。
Demo Demo 截圖 運(yùn)行 Demo本文章由 The EST Group 成員 @Kelvin 撰寫, 首發(fā)地為 PHPHub 社區(qū).
Demo 代碼請見:
https://github.com/CycloneAxe/est-eloque...
請參照此文檔運(yùn)行 Demo:
https://phphub.org/topics/1902
場景說明在我們平時(shí)的 Laravel 項(xiàng)目中, 若有一篇 title 為 "My Dinner With André & Fran?ois", id 為 5 的文章, 一般會生成如下鏈接:
http://example.com/post/5
但如果我們想使用 title 來生成文章的 url, 這時(shí) url 就會變成下面這樣:
http://example.com/post/My+Dinner+With+A...
可以看到生成的 url 看起來并不是特別清晰, 且對 SEO 也不友好. 這時(shí)我們就需要使用到 eloquent-sluggable 來對 url 進(jìn)行轉(zhuǎn)換了, 轉(zhuǎn)換后的結(jié)果如下:
http://example.com/post/my-dinner-with-a...
這時(shí)可以明顯看到轉(zhuǎn)換后的 url 更加清晰易讀, 對 SEO 也更加友好.
文章概覽安裝;
集成;
使用;
1. 安裝1). 使用 composer 安裝:
composer require cviebrock/eloquent-sluggable
2). 修改 config/app 文件,在 providers 數(shù)組內(nèi)追加如下內(nèi)容
"providers" => [ // ... "CviebrockEloquentSluggableSluggableServiceProvider", ];2. 集成
本文假設(shè)你已經(jīng)有了一個(gè)使用 Laravel 編寫的博客系統(tǒng),接下來通過對博客文章 (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). 數(shù)據(jù)庫 migration
$ composer dump-autoload $ php artisan migrate3. 使用
在每次創(chuàng)建一篇新文章的同時(shí),slug 字段將會自動采用文章 title 作為固定鏈接的地址
$post = new Post([ "title" => "My Awesome Blog Post", ]); $post->save();
文章創(chuàng)建完成后, 您可以通過 $post->slug 來獲取文章的 slug.
更多的例子請移步 官方文檔 參考.
歡迎關(guān)注 LaravelTips, 一個(gè)專注于為 Laravel 開發(fā)者服務(wù), 致力于幫助開發(fā)者更好的掌握 Laravel 框架, 提升開發(fā)效率的微信公眾號.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21471.html
摘要:要解決此問題,只需運(yùn)行以下命令即可使用包函數(shù)將字符串轉(zhuǎn)換為復(fù)數(shù)形式。函數(shù)接受兩個(gè)參數(shù)一個(gè)值和一個(gè)閉包。該值將被傳遞給閉包,然后該值將被返回。更新方法返回布爾值,但由于用了,所以它將返回。這對調(diào)試非常有用。函數(shù)根據(jù)給定的字符串生成一個(gè)友好的。 Laravel包含各種全局輔助函數(shù)(helper), 你可以使用它們使開發(fā)工作流程更加輕松。 在這里,我將會列一下10個(gè)最好的 Laravel h...
摘要:文章轉(zhuǎn)自包含各種全局輔助函數(shù)。返回應(yīng)用程序中公共目錄的完全限定的絕對路徑。要解決此問題,只需運(yùn)行以下命令即可使用包函數(shù)將字符串轉(zhuǎn)換為復(fù)數(shù)形式。該值將被傳遞給閉包,然后該值將被返回。方法返回布爾值,但由于用了,所以它將返回。 showImg(https://segmentfault.com/img/remote/1460000018944915?w=1408&h=846); 文章轉(zhuǎn)自:h...
摘要:控制反轉(zhuǎn)容器控制反轉(zhuǎn)使依賴注入變得更加便捷。有瑕疵控制反轉(zhuǎn)容器是實(shí)現(xiàn)的控制翻轉(zhuǎn)容器的一種替代方案。容器的獨(dú)立使用即使沒有使用框架,我們?nèi)匀豢梢栽陧?xiàng)目中使用安裝組件來使用的控制反轉(zhuǎn)容器。在沒有給定任何信息的情況下,容器是無法實(shí)例化相關(guān)依賴的。 聲明:本文并非博主原創(chuàng),而是來自對《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當(dāng)然也不是原汁原味...
摘要:是一款可愛的小插件,將和瀏覽器的封裝到一起,解決了單純使用進(jìn)行無刷新加載時(shí)對搜索引擎的不友好,并且節(jié)省了開支提高了瀏覽速度,明顯地優(yōu)化了用戶體驗(yàn)。是提供的,是對瀏覽器歷史對象的增強(qiáng)。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可愛的 jQuery 小插件,將 a...
摘要:是一款可愛的小插件,將和瀏覽器的封裝到一起,解決了單純使用進(jìn)行無刷新加載時(shí)對搜索引擎的不友好,并且節(jié)省了開支提高了瀏覽速度,明顯地優(yōu)化了用戶體驗(yàn)。是提供的,是對瀏覽器歷史對象的增強(qiáng)。 showImg(https://segmentfault.com/img/remote/1460000007640529?w=1008&h=569); pjax 是一款可愛的 jQuery 小插件,將 a...
閱讀 2308·2021-11-24 09:39
閱讀 3038·2021-10-15 09:39
閱讀 3088·2021-07-26 23:38
閱讀 2288·2019-08-30 11:14
閱讀 3409·2019-08-29 16:39
閱讀 1713·2019-08-29 15:23
閱讀 778·2019-08-29 13:01
閱讀 2663·2019-08-29 12:29