3 way to create slug in laravel 9 without package

In this section we will see how to create slug in laravel 9.


1. Create Slug using Illuminate\Support\Str helper;

public function store(Request $request)
{
    $request->validate([
        'name' => 'required|string|max:255',
        'slug' => 'required|string|max:255',
    ]);

    Category::create([
        'name' => $request->name,
        'slug' => \Str::slug($request->slug)
    ]);

    return redirect()->route('categories.index');
}


2. Create direct slug in name place. using 'slug' => \Str::slug($request->name);

public function store(Request $request)
{
    $request->validate([
        'name' => 'required|string|max:255',
    ]);

    Category::create([
        'name' => $request->name,
        'slug' => \Str::slug($request->name)
    ]);

    return redirect()->route('categories.index');
}


3. You can create slug using str()->slug('laravel 9') helper method. laravel 9 support str(), so you do not need to import any class you can access str() anywhere.

public function store(Request $request)
{
    $request->validate([
        'name' => 'required|string|max:255',
        'slug' => 'required|string|max:255',
    ]);

    Category::create([
        'name' => $request->name,
        'slug' => str()->slug($request->slug)

    ]);

    return redirect()->route('categories.index');
}