DateRange

# Make

Поле 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() позволяет изменить формат отображения значений полей в preview.

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