- Установка и настройка:
Сначала давайте установим пакет Sluggable в Laravel с помощью Composer. Откройте терминал и выполните следующую команду:composer require cviebrock/eloquent-sluggable
Далее добавьте поставщика услуг и фасад в файл config/app.php:
'providers' => [
// Other providers...
Cviebrock\EloquentSluggable\ServiceProvider::class,
],
'aliases' => [
// Other aliases...
'Sluggable' => Cviebrock\EloquentSluggable\Facades\Sluggable::class,
]
-
Основное использование:
Чтобы создать пули для ваших моделей Eloquent, начните с добавления признакаHasSlugв класс модели и определения полей, которые будут использоваться. Например:use Cviebrock\EloquentSluggable\Sluggable; class Post extends Model { use Sluggable; public function sluggable(): array { return [ 'slug' => [ 'source' => 'title', ], ]; } }В этом примере поле
slugбудет автоматически создано на основе поляtitle. -
Настройка параметров сегментов.
Вы можете настроить различные параметры создания сегментов, изменив методsluggableв своей модели. Вот несколько примеров:public function sluggable(): array { return [ 'slug' => [ 'source' => 'title', 'separator' => '-', 'maxLength' => 50, 'unique' => true, 'onUpdate' => true, ], ]; }В этом примере мы указываем собственный разделитель, устанавливаем максимальную длину фрагмента, обеспечиваем уникальность и повторно создаем фрагмент при обновлениях.
-
Обработка многоязычных ярлыков.
Если вам нужно создать ярлыки для многоязычного контента, Laravel Sluggable предоставляет встроенную поддержку. Вот пример:public function sluggable(): array { return [ 'slug' => [ 'source' => ['title', 'lang'], 'separator' => '-', 'unique' => true, 'onUpdate' => true, ], ]; }В этом случае пул будет создан с использованием полей
titleиlang. -
Настройка логики создания пулов.
Вы можете определить собственную логику для создания пулов, реализовав замыкание в методеsluggable. Вот пример:public function sluggable(): array { return [ 'slug' => [ 'source' => 'title', 'separator' => '-', 'unique' => true, 'onUpdate' => true, 'method' => function ($string, $separator) { // Custom slug generation logic // ... return $slug; }, ], ]; }В этом примере вы можете реализовать свою собственную логику генерации пулов, изменив замыкание.
Не забудьте применить соответствующие методы SEO вместе с созданием URL-адресов, чтобы максимизировать преимущества. Удачной игры!