This package generates a unique slug for any Eloquent model whenever it is created or updated. Configure it with a #[Sluggable] attribute on the model, or with the HasSlug trait and a getSlugOptions() method when you need more control.
use Spatie\Sluggable\Attributes\Sluggable;
#[Sluggable(from: 'title', to: 'slug')]
class Post extends Model
{
}
$post = Post::create(['title' => 'activerecord is awesome']);
$post->slug; // "activerecord-is-awesome"Slugs are produced by Laravel's Str::slug helper. On top of generation, the package ships uniqueness resolution, translatable slugs (via spatie/laravel-translatable), self-healing URLs, and a set of overridable actions for the low-level work.
The package also bundles a Laravel Boost skill so AI assistants know how to use it. Boost discovers the skill automatically once both packages are installed. Read more in the Laravel Boost skill docs.
Spatie is a web design agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
All documentation is available on our documentation site.
composer require spatie/laravel-sluggablecomposer testPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
