2015-03-26 2 views
11

я делаю следующее вКак использовать Illuminate Support Str :: slug в моем приложении 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); 
    }); 
} 

Когда я запускаю его в повозиться, я получаю следующее сообщение об ошибке:

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

..но я не знаю путь Laravel импортировать Это. Мне нужно просто использовать use делать, я попытался добавить следующее в файл конфигурации/app.php:

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

.., похоже, не имеет большого значения, хотя.

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

+0

'str_slug ($ название, $ разделитель), 'не сработал для вас? –

ответ

19

Я не думаю, что вам нужно создать псевдоним здесь, так что просто добавьте

use Illuminate\Support\Str; 

к вашей модели.

+1

или еще лучше вы можете добавить фасад и просто добавить 'use Str;' в верхней части файла, где вы его будете использовать. – ctf0

+0

Limonte, как я могу использовать Str в файлах с лезвиями? '{{использовать Illuminate \ Support \ Str; }} 'дает ошибку. – horse

0

Вы можете позвонить ему по \ Str :: slug(); вам не нужно регистрировать псевдоним, чтобы он работал, класс Str не является фасадом, а реальным статическим классом

0

В Laravel 5 проще, вы можете использовать эту глобальную функцию:

str_slug($tag->name);