Основы
Наследует Text.
* имеет те же возможности
Поле зависит от модели Eloquent
С помощью данного поля вы можете генерировать slug на основе выбранного поля, а также сохранять только уникальные значения.
use MoonShine\Laravel\Fields\Slug;Slug::make('Slug')use MoonShine\Laravel\Fields\Slug;Slug::make('Slug')

Генерация slug
Через метод from() можно указать на основе какого поля модели генерировать slug, при отсутствии значения.
from(string $from)from(string $from)
Slug::make('Slug')->from('title')Slug::make('Slug')->from('title')
Разделитель
По умолчанию в качестве разделителя слов при генерации slug используется - , метод separator() позволяет изменить это значение.
separator(string $separator)separator(string $separator)
Slug::make('Slug')->separator('_')Slug::make('Slug')->separator('_')
Локаль
По умолчанию при генерации slug учитывается заданная локаль приложения.
Метод locale() позволяет изменить данное поведения для поля.
locale(string $local)locale(string $local)
Slug::make('Slug')->locale('ru')Slug::make('Slug')->locale('ru')
Уникальные значения
Если необходимо сохранять только уникальные slug, то необходимо воспользоваться методом unique().
unique()unique()
Slug::make('Slug')->unique()Slug::make('Slug')->unique()
Динамический slug
Метод live() позволяет создать динамическое поле, которое будет отслеживать изменения в исходном поле.
Text::make('Title')->reactive(),Slug::make('Slug')->from('title')->live()Text::make('Title')->reactive(),Slug::make('Slug')->from('title')->live()
Также поддерживается lazy режим.
Text::make('Title')->reactive(lazy: true),Slug::make('Slug')->from('title')->live(lazy: true)Text::make('Title')->reactive(lazy: true),Slug::make('Slug')->from('title')->live(lazy: true)
Динамичность основана на реактивности полей.