Поля

Slug

Расширяет 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 slug_dark

Генерация 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()
];
}
 
//...

Живое поле основано на реактивности полей.