oleaass/laravel-sluggable

Add unique slugs to Eloquent models in Laravel

Downloads

82

Stars

0

Version

v1.1.1

Add slugs to Eloquent models in Laravel

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.

Buy Me A Coffee

oleaass

Author

oleaass