NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1412 most downloaded on Packagist
Easy creation of slugs for your Eloquent models in Laravel
Last release 2 months ago
20 Jul 2026
Release timing varies
gaps range from 3 weeks to 13 months
Most releases are documented
notes for 53 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
74 releases · first in 2013
add .gitattributes file and reduce size of package archive (#630, thanks @hosni)
.gitattributes file and reduce size of package archive (#630, thanks @hosni)- Added Laravel 13 support
- Added Laravel 12 support
One column per quarter.
Notice that Lumen will be deprecated in the next major release
Added Laravel 11 support (#608, thanks @fulopattila122)
switch to using Pest instead of PHPUnit for tests
Laravel 9 support (#577, #578, thanks @carbonvader and @tabcitu)
Fix event handling and tests
Fix event handling and tests
registerModelEvent() hook (#556, #561, thanks @standaniels)Bug fix for SluggableObserver::SAVED configurations
Bug fix for SluggableObserver::SAVED configurations
SluggableObserver::SAVED not always saving
the model (#558, #560, thanks @llewellyn-kevin)add firstUniqueSuffix and start counting from 2
add firstUniqueSuffix and start counting from 2
firstUniqueSuffix config settingbug fix for #543#issuecomment-763391948 (thanks @dluague)
add ability to slug models on Eloquent's saved event, rather than saving
saved event, rather than
saving
source configuration (see #539 and #448)customizeSlugEngine and scopeWithUniqueSlugConstraints methods
to the trait, to enforce type hinting and return values
slugEngineOptions configuration option (see #454, thanks @Adioz01)support PHP 8.0 (#533, thanks @cbl)
fix when manually setting a slug to a "falsy" value (#527, thanks @huiyang)
- Laravel 8 support
Nothing published for this version
fix to help support translatable slugs (using either spatie or Astrotomic package) (#506, thanks @GeoSot)
- Laravel 7.0 support
Nothing published for this version
- bump cocur/slugify to ^4.0
^4.0fix for PHP 7.4 beta (#486, thanks @KamaZzw)
- fix for semantic versioning
Laravel 6.0 support (note the package version will now follow the Laravel version)
Nothing published for this version
Laravel 5.8 support (#460, big thanks @tabuna)
Nothing published for this version
Fix slug getting set to null if model is updated with no source column loaded (#450, thanks @mylgeorge)
null if model is updated with no source column loaded (#450, thanks @mylgeorge)Nothing published for this version
- Laravel 5.7 support
Nothing published for this version
Bump versions of package dependencies
- Laravel 5.6 support
Nothing published for this version
Better exception message when calling SlugService::createSlug with an invalid attribute (#402, thanks @lptn)
SlugService::createSlug with an invalid attribute (#402, thanks @lptn)Make sure truncated slugs (due to maxLength) don't end in a separator
maxLengthKeepWords configuration option (#398)Laravel 5.5 support, including auto-registration
cocur/slugify to ^3.0Fixing composer requirements to support Laravel 5.4 only
Documentation change (#374, thanks @fico7489)
Switch to allow extending the class (#356, thanks @haddowg)
Better handling of numeric and boolean slug sources (#351, thanks @arturock)
Support Laravel 5.4 (#339, thanks @maddhatter)
Fix in getExistingSlugs when using global scopes
getExistingSlugs when using global scopes (#327)Cocur\Slugify to ^2.3.Fix for slugs updating when they don't need to, when using onUpdate with unique
onUpdate with unique (#317)The goal of the 4.1.x releases will be to focus on support in Laravel 5.3, only providing support for 5.1/5.2 where it is easy and doesn't affect perf
Fix SluggableScopeHelpers to work when using the short configuration syntax (#314).
SluggableScopeHelpers to work when using the short configuration syntax (#314).Added $config argument to SlugService::createSlug method for optionally overriding the configuration for a statically generated slug (#286).
$config argument to SlugService::createSlug method for optionally overriding
the configuration for a statically generated slug (#286).Added SluggableScopeHelpers trait which restores some of the scoping and query functionality of the 3.x version of the package (#280, thanks @unstoppa
SluggableScopeHelpers trait which restores some of the scoping and query
functionality of the 3.x version of the package (#280, thanks @unstoppablecarl and @Keoghan).onUpdate configuration option back to the package.SluggableScopeHelpers trait, and
how to use route model binding with slugs.Fixed several bugs related to Laravel 5.1 and collections (#263, #274).
Fix for Laravel 5.1 (#263 thanks @roshangautam and @andregaldino).
Cocur\Slugify to ^2.1 (#269 thanks @shadoWalker89).Model configuration is now handled in a sluggable() method. on the model instead of a property, and configuration options are now camelCase
sluggable() method.
on the model instead of a property, and configuration options are now camelCasefindBy...() scope/methods (can't really be used when a model
has multiple slugs ... plus the code is easy enough to implement in the model).onUpdate configuration option. If you want to re-generate a slug
on update, then set the model's slug to null before saving. Otherwise, existing
slugs will never be overwritten.createSlug() is no longer a static method on the model, but is a public method
on the SlugService class, with a different method signature (see docs).Compatible with Laravel 5.2 (by removing calls to composer from migrate command)
Fix for PostgreSQL and findBySlugOrId() (#205 thanks @Jaspur)
findBySlugOrId() (#205 thanks @Jaspur)Fix some namespacing issues in docblocks
Clean up migration code (#191 thanks @natzim)
If the source is empty, then set the slug to null (#162 thanks @PallMallShow)
null (#162 thanks @PallMallShow)build_from configuration (#171 thanks @blaxxi)getSlugEngine() method so that the Cocur\Slugify class can be configuredslugging and slugged Eloquent model eventsfindBySlugOrId() methods when the slug is numeric (#161 thanks @canvural)Model::createSlug('some string') (#185 thanks @phroggyy)Don't increment unique suffix if slug is unchanged (#108 thanks @kkiernan)
Laravel 5.1 support (#141/#148 thanks @Keoghan, @Bouhnosaure)
use_cache option and supportinclude_trashed option not working for models that inherit the SoftDeletes trait (#136 thanks @ramirezd42)generateSuffix() method so you could use different strategies other than integers for making incremental slugs (#129 thanks @EspadaV8)Remove Ardent support and tests
max_length option only applies to string slugs (#64 thanks @enzomaserati)Fixed findBySlug() to return a model and getBySlug() to return a collection (#72 thanks @jaewun and @Jono20202)
findBySlug() to return a model and getBySlug() to return a collection (#72 thanks @jaewun and @Jono20202)max_length option only applies to string slugs (#64 thanks @enzomaserati)Fixed softDelete behaviour and tests so Laravel 4.2 and earlier are supported (#56 thanks @hammat).
Illuminate\Support\Str to prepare for Laravel 4.3/5.0 (#58 thanks @0xMatt).Your coding agent can read these notes before it upgrades. Set up the MCP server →