Освоение Laravel Sluggable: подробное руководство по генерации URL-слагов

  1. Установка и настройка:
    Сначала давайте установим пакет 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,
]
  1. Основное использование:
    Чтобы создать пули для ваших моделей Eloquent, начните с добавления признака HasSlugв класс модели и определения полей, которые будут использоваться. Например:

    use Cviebrock\EloquentSluggable\Sluggable;
    class Post extends Model
    {
    use Sluggable;
    public function sluggable(): array
    {
        return [
            'slug' => [
                'source' => 'title',
            ],
        ];
    }
    }

    В этом примере поле slugбудет автоматически создано на основе поля title.

  2. Настройка параметров сегментов.
    Вы можете настроить различные параметры создания сегментов, изменив метод sluggableв своей модели. Вот несколько примеров:

    public function sluggable(): array
    {
    return [
        'slug' => [
            'source' => 'title',
            'separator' => '-',
            'maxLength' => 50,
            'unique' => true,
            'onUpdate' => true,
        ],
    ];
    }

    В этом примере мы указываем собственный разделитель, устанавливаем максимальную длину фрагмента, обеспечиваем уникальность и повторно создаем фрагмент при обновлениях.

  3. Обработка многоязычных ярлыков.
    Если вам нужно создать ярлыки для многоязычного контента, Laravel Sluggable предоставляет встроенную поддержку. Вот пример:

    public function sluggable(): array
    {
    return [
        'slug' => [
            'source' => ['title', 'lang'],
            'separator' => '-',
            'unique' => true,
            'onUpdate' => true,
        ],
    ];
    }

    В этом случае пул будет создан с использованием полей titleи lang.

  4. Настройка логики создания пулов.
    Вы можете определить собственную логику для создания пулов, реализовав замыкание в методе 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-адресов, чтобы максимизировать преимущества. Удачной игры!