This package allows you to create unique slugs. It keeps all the slugs you define in the slugs table. It also satisfies all requests and directs it to the controller you define in your model.
composer require oguzcandemircan/laravel-unique-sluggable
Your models should use the OguzcanDemircan\LaravelUniqueSluggable\HasSlug
trait and define slugSource
property
<?php
namespace App\Models;
...
use OguzcanDemircan\LaravelUniqueSluggable\HasSlug;
class Page extends Model
{
use HasFactory;
use HasSlug;
protected $slugSource = 'title';
use App\Models\Page;
use App\Models\Post;
Page::create(['title' => 'Great Title']);
//Slug is great-title
Post::create(['title' => 'Great Title']);
//you get eror
If you want all your requests to be captured and routed automatically, you should add the controller
property to your model.
protected $controller [PageController::class, 'show'];
When your application receives a request, OguzcanDemircan\LaravelUniqueSluggable\Controllers\SlugController
calls the controller class you defined in your model if there is a matching slug.
Please see the changelog for more information on what has changed recently.
$ composer test
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email author email instead of using the issue tracker.
license. Please see the license file for more information.