Extends Text
- has the same features
Field depends on Eloquent Model
Basics
Using this field you can generate a slug based on the selected field, and also store only unique values.
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 generation
Using the from()
method, you can specify based on which model field to generate a slug, if there is no value.
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')];}//...
Delimiter
By default, -
is used as a word separator when generating a slug. The separator()
method allows you to change this value.
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('_')];}//...
Locale
By default, slug generation takes into account the specified application locale, The locale()
method allows you to change this behavior for a field.
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')];}//...
Unique value
If you need to save only unique slugs, you need to use the unique()
method.
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()];}//...
Live slug
The live()
method allows you to create a live field that will track changes to the original field.
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()];}//...
Lives is based on field reactivity.