2015-03-26 9 views
11

robię następujące wJak korzystać z Illuminate Support Str :: slug w mojej aplikacji Laravel 5?

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

    // set Tag slug 
    Tag::saving(function($tag) 
    { 
     //slugify name 
     $tag->slug = Str::slug($tag->name); 
    }); 
} 

Kiedy uruchamiam go w majstrować, pojawia się następujący błąd:

PHP Fatal error: Class 'App\Providers\Str' not found in /var/www/questions-l5/app/Providers/EventServiceProvider.php on line 35 

..ale nie wiem drodze laravel importować to. Czy muszę po prostu używać use, próbowałem dodać następujące do pliku config/app.php:

'aliases' => [ 
... 
'Str'  => 'Illuminate\Support\Str', 

.. nie wydaje się, aby mimo dużej różnicy.

http://chrishayes.ca/blog/code/laravel-4-generating-unique-slugs-elegantly http://laravel.com/api/5.0/Illuminate/Support/Str.html

+0

'str_slug ($ tytuł, $ separator); 'nie działa dla ciebie? –

Odpowiedz

19

Nie sądzę, trzeba utworzyć alias tutaj, więc wystarczy dodać

use Illuminate\Support\Str; 

do modelu.

+1

lub jeszcze lepiej możesz dodać elewację i po prostu dodaj 'use Str;' u góry pliku, gdzie będziesz go używał. – ctf0

+0

Limonte, jak mogę używać Str w plikach blade? '{{użyj Illuminate \ Support \ Str; }} 'daje błąd. – horse

0

można nazwać go przez \ Str :: slug(); Nie musisz rejestrować aliasu, aby działał, klasa Str nie jest fasadą, ale prawdziwą statyczną klasą

1

W laravel wersji 5.4, napisać jak

Str::slug() 
0

W laravel 5 jest prostsze, można skorzystać z tej globalnej funkcji:

str_slug($tag->name); 
Powiązane problemy