How To Create Unique Slug In Laravel 9

Websolutionstuff | Sep-27-2022 | Categories : Laravel

In this article, we will see how to create a unique slug in laravel 9. A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form. a slug can be very powerful for keyword SEO. A good slug can improve a user’s experience if it clearly states what the webpage is about. So, we will generate a unique slug in laravel 9.

In this example, we will create a slug based on the title. For example, if the user enters a title like the laravel 9 slug generator example then the slug can be automatically created or generated like the laravel-9-slug-generator-example.

Also, you can create a slug using the laravel Str::slug() helper function and slug() method.

So, let's see laravel 9 create a unique slug or create a unique slug in PHP.



namespace App\Models;

use Illuminate\Support\Str;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Post extends Model
    use HasFactory;

    protected $fillable = [
        'title', 'detail', 'slug'

     * Boot the model.
    protected static function boot()

        static::created(function ($post) {
            $post->slug = $post->createSlug($post->title);

     * create slug
     * @return response()
    private function createSlug($title)
        if (static::whereSlug($slug = Str::slug($title))->exists()) {
            $max = static::whereTitle($title)->latest('id')->skip(1)->value('slug');

            if (is_numeric($max[-1])) {
                return preg_replace_callback('/(\d+)$/', function ($mathces) {
                    return $mathces[1] + 1;
                }, $max);

            return "{$slug}-2";

        return $slug;





namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
     * create a new post
     * @return \Illuminate\Http\Response
    public function create()
        $post = Post::create([
            "title" => "Laravel Slug Create"







Create Slug using Str::slug()

The Str::slug method generates a URL friendly "slug" from the given string.

use Illuminate\Support\Str;
$slug = Str::slug('Laravel 9 Slug Helper Function', '-');





Generate Slug using slug() Method

The slug method generates a URL friendly "slug" from the given string.

use Illuminate\Support\Str;
$slug = Str::of('Laravel 9 Slug Method Example')->slug('-');




You might also like :

Recommended Post
Featured Post
How To Send Email With Attachment Using Node.js
How To Send Email With Attachm...

Hello Guys, In this tutorial we will see how to send email with attachment using node.js app. In this tutorial w...

Read More


How To Add Toastr Notification In Laravel 10
How To Add Toastr Notification...

In this article, we will see how to add toastr notification in laravel 10. Here, we will learn about toastr notification...

Read More


Laravel 8 Autocomplete Search from Database
Laravel 8 Autocomplete Search...

In this article, we will see the laravel 8 autocomplete search from the database. Using ajax autocomplete...

Read More


How To Roll back Specific Migration In Laravel
How To Roll back Specific Migr...

In this article, we will explore the process of rolling back specific migrations in Laravel, focusing on Laravel version...

Read More