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

后端 未结 6 916
孤独总比滥情好
孤独总比滥情好 2021-01-03 22:46

I\'m doing the following in the

public function boot(DispatcherContract $events)
{
    parent::boot($events);

    // set Tag slug
    Tag::saving(function(         


        
相关标签:
6条回答
  • 2021-01-03 23:19

    In laravel 5 is simpler, you can use these helpers:

    Before Laravel 5.8 (from this version is deprecated):

    str_slug($tag->name);
    

    After Laravel 5.4:

    Str::slug($tag->name)
    
    0 讨论(0)
  • 2021-01-03 23:26

    you can call it by \Str::slug(); you dont have to register an alias to make it works, the Str class is not a facades, but a real static class

    0 讨论(0)
  • 2021-01-03 23:27

    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

    0 讨论(0)
  • 2021-01-03 23:27

    In laravel version 5.4, write like

    Str::slug()
    
    0 讨论(0)
  • 2021-01-03 23:29

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

    use Illuminate\Support\Str;
    

    to your model.

    0 讨论(0)
  • 2021-01-03 23:38

    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.

    0 讨论(0)
提交回复
热议问题