告別重復Slug:使用drobee/nova-sluggable簡化Laravel Nova開發

我最近在開發一個博客系統,使用laravel nova作為后臺管理界面。為了方便管理文章,我需要為每篇文章生成一個唯一的slug,用于文章的url。起初,我嘗試手動維護slug,但很快發現這非常低效。每添加一篇文章,都需要手動檢查slug的唯一性,如果重復則需要手動修改,這不僅浪費時間,還容易出錯。更糟糕的是,在多人協作的開發環境下,這種手動方式會變得更加混亂。

于是我開始尋找解決方案,最終找到了drobee/nova-sluggable這個laravel Nova擴展包。它可以自動生成唯一的Slug,并在用戶輸入標題時實時更新,完美地解決了我的問題。

安裝drobee/nova-sluggable非常簡單,只需要使用composer

composer require drobee/nova-sluggable

安裝完成后,在你的Nova資源中添加SluggableText和Slug字段:

use DrobeeNovaSluggableSluggableText;<br>use DrobeeNovaSluggableSlug;</p><p>class Post extends Resource<br>{</p><pre class="brush:php;toolbar:false">// ...  public function fields(Request $request) {     return [         // ...          SluggableText::make('標題'),         Slug::make('Slug'),          // ...     ]; }

}

就這么簡單!現在,當用戶在“標題”字段輸入文字時,“Slug”字段會自動生成對應的Slug,并且保證其唯一性。 這個包甚至支持自定義Slug字段名稱、語言、最大長度、分隔符以及更新事件(keyup或blur)。 例如,要自定義Slug字段的最大長度為100,可以使用如下代碼:

Slug::make('Slug')->slugMaxLength(100);

更重要的是,drobee/nova-sluggable可以與流行的SpatieSluggable包無縫集成,如果你的模型已經使用了SpatieSluggable,那么drobee/nova-sluggable會自動繼承其配置,無需額外設置。 這大大簡化了配置過程,并確保了Slug生成的一致性。

為了確保Slug的唯一性,你需要在Slug字段上調用slugUnique()方法,并指定Eloquent模型:

Slug::make('Slug')</p><pre class="brush:php;toolbar:false">->slugUnique() ->slugModel(static::$model);

通過這些簡單的配置,drobee/nova-sluggable 就能夠為我的博客系統自動生成唯一且友好的Slug,極大地提升了開發效率和用戶體驗。 再也不用擔心Slug重復或手動維護Slug帶來的麻煩了! 這讓我可以將更多精力投入到其他更重要的功能開發中。 如果你也正在為Laravel Nova項目的Slug問題苦惱,強烈推薦你試試drobee/nova-sluggable。 相信它會成為你開發利器,讓你的開發過程更加流暢高效。 學習更多關于Composer的使用技巧,可以參考這個Composer在線學習地址:學習地址。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享