Расширяет Text
- имеет те же функции
Поле зависит от модели Eloquent
Основы
Используя это поле, вы можете генерировать slug на основе выбранного поля, а также хранить только уникальные значения.
use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')];}//...use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')];}//...

Генерация slug
Используя метод from(), вы можете указать, на основе какого поля модели генерировать slug, если значение отсутствует.
from(string $from)from(string $from)
use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->from('title')];}//...use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->from('title')];}//...
Разделитель
По умолчанию в качестве разделителя слов при генерации slug используется -. Метод separator() позволяет изменить это значение.
separator(string $separator)separator(string $separator)
use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->separator('_')];}//...use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->separator('_')];}//...
Локаль
По умолчанию генерация slug учитывает указанную локаль приложения. Метод locale() позволяет изменить это поведение для поля.
locale(string $local)locale(string $local)
use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->locale('ru')];}//...use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->locale('ru')];}//...
Уникальное значение
Если вам нужно сохранять только уникальные slug, необходимо использовать метод unique().
unique()unique()
use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->unique()];}//...use MoonShine\Fields\Slug;//...public function fields(): array{return [Slug::make('Slug')->unique()];}//...
Живой slug
Метод live() позволяет создать живое поле, которое будет отслеживать изменения в исходном поле.
use MoonShine\Fields\Slug;use MoonShine\Fields\Text;//...public function fields(): array{return [Text::make('Title')->reactive(),Slug::make('Slug')->from('title')->live()];}//...use MoonShine\Fields\Slug;use MoonShine\Fields\Text;//...public function fields(): array{return [Text::make('Title')->reactive(),Slug::make('Slug')->from('title')->live()];}//...
Живое поле основано на реактивности полей.