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

v1.1.1 2022-02-17 10:44 UTC

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.

Buy Me A Coffee