Join WhatsApp ChannelJoin Now

Laravel 8 Create Unique Slug Example

Hi Dev,

Today, i we will show you laravel 8 create unique slug example. This article will give you simple example of laravel 8 create unique slug example. you will laravel 8 create unique slug example. In this article, we will implement a laravel 8 create unique slug example.

So let’s follow few step to create example of laravel 8 create unique slug example.

Slug Example

app/Models/Pages.php

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class Pages extends Model
{

	/**
	 * The attributes that are mass assignable.
	 *
	 * @var array
	 */
	protected $fillable = [
		'title', 'contant', 'slug'
	];


    protected static function boot()
    {
        parent::boot();
        static::created(function ($post) {
            $post->slug = $post->createSlug($post->title);
            $post->save();
        });
    }

    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;
    }
}

Controller Code:

<?php
  
namespace App\Http\Controllers;
  
use App\Models\Pages;
use Illuminate\Http\Request;
  
class PageController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $page = Pages::create([
            "title" => "Laravel CRUD"
        ]);
        dd($page);
    }
}

Output:

Laravel-CRUD
Laravel-CRUD-2
Laravel-CRUD-3

I hope it will assist you…

Recommended Posts