Создание
Поле DateRange включает все базовые методы и позволяет выбрать диапазон дат.
Поскольку диапазон дат имеет два значения, необходимо указать их с помощью метода fromTo()
.
fromTo(string $fromField, string $toField)
use MoonShine\Fields\DateRange; //... public function fields(): array{ return [ DateRange::make('Dates') ->fromTo('date_from', 'date_to') ];} //...
Дата и время
Использование метода withTime()
позволяет вводить дату и время в поля.
withTime()
use MoonShine\Fields\DateRange; //... public function fields(): array{ return [ DateRange::make('Dates') ->fromTo('date_from', 'date_to') ->withTime() ];} //...
Формат
Метод format()
позволяет изменить формат отображения значений полей в предпросмотре.
format(string $format)
use MoonShine\Fields\DateRange; //... public function fields(): array{ return [ DateRange::make('Dates') ->fromTo('date_from', 'date_to') ->format('d.m.Y') ];} //...
Атрибуты
У поля DateRange есть атрибуты, которые можно установить с помощью соответствующих методов.
Методы min()
и max()
используются для установки минимального и максимального значений даты.
min(string $min)
max(string $max)
Метод step()
используется для установки шага даты для поля.
step(int|float|string $step)
use MoonShine\Fields\DateRange; //...public function fields(): array{ return [ DateRange::make('Dates') ->fromTo('date_from', 'date_to') ->min('2023-01-01') ->max('2023-12-31') ->step(5) ];} //...
Если вам нужно добавить пользовательские атрибуты для полей, вы можете использовать соответствующие методы fromAttributes()
и toAttributes()
.
fromAttributes(array $attributes)
toAttributes(array $attributes)
use MoonShine\Fields\DateRange; //... public function fields(): array{ return [ DateRange::make('Dates') ->fromTo('date_from', 'date_to') ->fromAttributes(['placeholder'=> 'from']) ->toAttributes(['placeholder'=> 'to']) ];} //...
Фильтр
При использовании поля DateRange для построения фильтра метод fromTo()
не используется, поскольку фильтрация происходит по одному полю в таблице базы данных.
use MoonShine\Fields\DateRange; //... public function filters(): array{ return [ DateRange::make('Dates', 'dates') ];} //...