news Apr 27, 2026 · 48 views · 2 min read

Mastering Laravel Sluggable for Eloquent Models

Discover how Laravel Sluggable simplifies slug creation for Eloquent models, ensuring SEO-friendly URLs with ease. Learn to implement and customize this powerful tool effectively.

Introduction to Laravel Sluggable

Creating clean, URL-friendly slugs for your web applications can significantly enhance SEO and improve user experience. Laravel Sluggable offers an efficient, opinionated solution for generating slugs automatically for Eloquent models.

What is a Slug?

A slug is a part of a URL that is typically a readable string representing the title of the page. For example, in the URL example.com/blog/laravel-tutorial, laravel-tutorial is the slug. Slugs are important for SEO and readability.

Why Use Laravel Sluggable?

Laravel Sluggable automates the process of creating slugs for Eloquent models. It ensures that your slugs are unique, readable, and SEO-friendly without the need for repetitive code.

Key Features

  • Automatic Slug Generation: Simplifies creating slugs from model attributes.
  • Customizable: Configure slug generation to meet your specific needs.
  • Unique Slugs: Automatically ensures that slugs are unique across the database.

Setting Up Laravel Sluggable

Installation

To get started with Laravel Sluggable, you need to install it via Composer:

composer require cviebrock/eloquent-sluggable

Configuration

After installing, you need to set up the sluggable configuration in your Eloquent model. Here's a basic example:

use Cviebrock\EloquentSluggable\Sluggable;

class Post extends Model
{
    use Sluggable;

    public function sluggable(): array
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
}

This configuration will automatically generate a slug based on the title attribute of the Post model.

Customization Options

Laravel Sluggable provides several options to customize slug creation, such as:

  • Source Fields: Define multiple model fields to derive the slug from.
  • Slug Separator: Change the default hyphen separator to any character.
  • Maximum Length: Limit the length of generated slugs.

Advanced Usage

Handling Duplicates

Event Hooks

Sluggable allows you to hook into Eloquent events to customize behavior further. You might want to modify the slug before saving it or log changes when it's updated.

Conclusion

Laravel Sluggable is a powerful tool for managing URL slugs in your Laravel applications. It automates and simplifies the process, ensuring that your slugs are always unique and SEO-friendly. By leveraging its customization options, you can tailor slug creation to fit your application's specific needs. Incorporate Laravel Sluggable into your projects to streamline your workflow and enhance your web application's SEO capabilities.

Discussion

0 Comments

Leave a Comment

Comments are moderated and will appear after approval.