Slug

Наследует Text * имеет те же возможности

Поле зависит от Eloquent Model

# Основы

С помощью данного поля вы можете генерировать slug на основе выбранного поля, а также сохранять только уникальные значения.

use MoonShine\Fields\Slug;
 
//...
 
public function fields(): array
{
return [
Slug::make('Slug')
];
}
 
//...

# Генерация slug

Через метод from() можно указать на основе какого поля модели генерировать slug, при отсутствии значения.

from(string $from)
use MoonShine\Fields\Slug;
 
//...
 
public function fields(): array
{
return [
Slug::make('Slug')
->from('title')
];
}
 
//...

# Разделитель

По умолчанию в качестве разделителя слов при генерации slug используется - , метод separator() позволяет изменить это значение.

separator(string $separator)
use MoonShine\Fields\Slug;
 
//...
 
public function fields(): array
{
return [
Slug::make('Slug')
->separator('_')
];
}
 
//...

# Локаль

По умолчанию генерация slug учитывается заданная локаль приложения, метод locale() позволяет изменить данное поведения для поля.

locale(string $local)
use MoonShine\Fields\Slug;
 
//...
 
public function fields(): array
{
return [
Slug::make('Slug')
->locale('ru')
];
}
 
//...

# Уникальное значение

Если необходимо сохранять только уникальные slug, то необходимо воспользоваться методом unique().

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()
];
}
 
//...

Динамичность основано на реактивности полей .