This package hosts a robust and flexible trait designed for effortless slug generation within Laravel applications. Whether you're building a blog, e-commerce platform, or any other web application, managing SEO-friendly URLs becomes seamless with this powerful solution.
-
Automatic Slug Creation: Automatically generates slugs based on a specified field in your Eloquent models, eliminating the need for manual slug assignment.
-
Unique Slug Enforcement: Ensures that generated slugs are unique within the database table, preventing conflicts and maintaining data integrity.
-
SEO-Friendly URLs: Facilitates the creation of SEO-friendly URLs by generating slugs based on user-friendly field values.
-
Groupable Slugs: Supports the generation of unique slugs within a specific group, allowing for distinct slugs across different categories or sections. This practically means that you can have the same slug in different categories/tasks/projects/posts/etc.
-
Customizable Configuration: Easily configure the field used for slug generation via Laravel's flexible configuration system, adapting to diverse project requirements effortlessly.
You can install the package via composer:
composer require coding-wisely/laravel-slug-auto-generator
You can publish the config file with php artisan vendor:publish
and select CodingWisely package from the list.
This is the contents of the published config file:
// config for CodingWisely/SlugGenerator
// replace it with your model column
return [
'sluggable_field' => 'name',
'groupable_field' => null, // 'category_id',
];
Replace with your field.
-
Integrate the Trait: Simply integrate the
SlugGenerator
trait into your Eloquent model to unlock its powerful slug generation capabilities. -
Configuration: Customize the slug generation behavior by modifying the
slug-auto-generator.php
configuration file located in yourconfig
directory. -
Effortless Integration: With the trait seamlessly integrated into your model, enjoy automatic and unique slug generation without any additional setup.
use CodingWisely\SlugGenerator\SlugGenerator;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
use SlugGenerator;
// Your model's attributes and methods...
// override config file with
public static function getSluggableField(): string
{
return 'title'; // your own field on Model
}
// if you want to have unique slugs in different categories (groupable, such as project_id, team_id, category_id, etc.)
public static function getGroupableField(): ?string
{
return 'category_id'; // your own field on Model
}
}
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.