Downloads
Stars
Version
This package allows you to automatically create and/or update slugs when saving Eloquent models.
$ composer require oleaass/laravel-sluggable
namespace App\Models;
use OleAass\Sluggable\Sluggable;
class Post extends Model
{
use Sluggable;
public function getSlugOptions() : array
{
return [
'source' => 'title'
];
}
}
$post = \App\Models\Post::create([
'title' => 'My first post'
]);
echo $post->slug; // Output: my-first-post
These are the available options, with default values, which you can override via
getSlugOptions()
on your Eloquent model.
[
'source' => 'title', // The field used as source for the slug
'dest' => 'slug', // Name of the slug column
'onCreate' => true, // If true, automatically create slug when creating a new resource
'onUpdate' => false, // If true, automatically change slug when updating an existing resource
'allowOverwrite' => true, // If true, overwrite existing slug when updating a resource
'allowDuplicate' => false, // If true, non unique slugs can be created (recommended to be false always)
'delimiter' => '-', // Replace spaces with this
];
I spend my free time making packages. So if you want to support me and my work, I would really appreciate if you bough me a coffee.