oguzcandemircan / laravel-unique-sluggable
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.
Requires
- illuminate/support: ~7|~8|^9.28|^10.0
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
README
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.
Installation
composer require oguzcandemircan/laravel-unique-sluggable
Usage
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.
Change log
Please see the changelog for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email author email instead of using the issue tracker.
Credits
License
license. Please see the license file for more information.