A small trait, a wrapper of cviebrock/eloquent-sluggable
pawelmysior/laravel-sluggable is a Laravel package for a small trait, a wrapper of cviebrock/eloquent-sluggable.
It currently has 0 GitHub stars and 354 downloads on Packagist (latest version 7.0.0).
Install it with composer require pawelmysior/laravel-sluggable.
Discover more Laravel packages by pawelmysior
or browse all Laravel packages to compare alternatives.
Last updated
This is a very small trait. It is an elegant wrapper of cviebrock/eloquent-sluggable.
It defines a default slug source attribute (title) and adds a scope to find a model by the slug.
You can install the package via composer:
composer require pawelmysior/laravel-sluggable
Use the trait on the model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
class Post extends Model
{
use Sluggable;
}
By default the slug is created from the title attribute, but you can easily change it by overwriting the getSlugSourceAttribute() method from the trait on your model like so:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
class Post extends Model
{
use Sluggable;
protected function getSlugSourceAttribute(): string
{
return $this->name;
}
}
The slugs will now be created. There is also a scope defined in the trait that lets you find a post by slug:
Post::findBySlug('slug');
The MIT License (MIT). Please see License File for more information.