oleaass / laravel-sluggable
Add unique slugs to Eloquent models in Laravel
Installs: 84
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:laravel-package
Requires (Dev)
- orchestra/testbench: ^6.20
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-04-17 15:48:39 UTC
README
This package allows you to automatically create and/or update slugs when saving Eloquent models.
Installation
$ composer require oleaass/laravel-sluggable
Usage
Make your Eloquent model sluggable
namespace App\Models; use OleAass\Sluggable\Sluggable; class Post extends Model { use Sluggable; public function getSlugOptions() : array { return [ 'source' => 'title' ]; } }
Example
$post = \App\Models\Post::create([ 'title' => 'My first post' ]); echo $post->slug; // Output: my-first-post
Options
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 ];
Support Me
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.