How to use Illuminate\Support\Str::slug in my Laravel 5 app?

I don't think you need to create alias here, so just add

use Illuminate\Support\Str;

to your model.


Edit: As samiles pointed out, str_slug($text) has been removed in Laravel 6.0.

In Laravel 5 you can use str_slug($text) directly. You no longer have to use the Facade.

http://laravel.com/docs/5.1/helpers#method-str-slug


I had the exact same issue. Adding the line to aliases in the app\config\app.php file is the correct way to fix this.

'alias' => [
     ...
     'Str' => Illuminate\Support\Str::class,
     ...
],

Doing it this way avoids:

  1. the need to add a use Illuminate\Support\Str; line in your blade file
  2. the need to fully quality the class, i.e \Illuminate\Support\Str::slug($tag->name)

In fact you can see that Mr. Otwell includes this line in Laravel 5.8.

I'm not sure why this didn't work for you. It could be that your Laravel is out of date. Make sure you've upgraded to 5.8 and then run composer update.