Skip to content

forest-lynx/moonshine-decimal-field

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Поле Decimal для Moonshine

Latest Stable Version Total Downloads Software License
Laravel PHP PHP

Documentation in English

Поле для работы с десятичными числами в административной панели MoonShine. Наследуется от поля Text. При редактировании к полю применяется маска @money Alpine.js

Содержание

Установка

Команда для установки:

composer require forest-lynx/moonshine-decimal-field

Использование

<?php
//...
use ForestLynx\MoonShine\Fields\Decimal;
//...
Decimal::make('Price', 'price');

Note

При формировании поля используется NumberFormatter php-intl. По умолчанию данные о локали берутся из настроек проекта, для ее переопределения используйте метод locale()

Методы

locale(string $locale):

  • $locale - принимает строку с локалью, например: 'ru_RU' или 'ru'.

precision(int $precision, ?bool $isNaturalNumber):

  • $precision принимает число, количество знаков дробной части.
  • $isNaturalNumber Не обязательный параметр, по умолчанию false. Отвечает за обработку натуральных чисел, например если у вас в базе данных значения хранятся в виде целых чисел. naturalNumber(?int $precision = 2)
  • $precision принимает число, количество знаков дробной части, по умолчанию 2.

Пример с натуральным числом, значение поля в базе данных = 12564. Предположим, что с учетом Ваших потребностей оно должно трансформироваться в 125.64:

<?php
use ForestLynx\MoonShine\Fields\Decimal;
//...
Decimal::make('Sum', 'sum')
   ->precision(2, true);
//or
Decimal::make('Sum', 'sum')
   ->naturalNumber();
//...

Caution

Значения $precision в методах precision(),naturalNumber() перезаписывает данные о количестве знаков дробной части, ранее определенных указанными методами. Например:

<?php
use ForestLynx\MoonShine\Fields\Decimal;
//...
Decimal::make('Sum', 'sum')
  ->precision(3)
  ->naturalNumber(4);
//...

Данный код переопределит значение количества знаков после запятой на 4.

Note

При работе с натуральными числами, со значением поля полученным из request перед сохранением происходит обратная трансформация.

Единицы измерения

Для указания поля, где хранятся единицы измерения:

Методы

unit(string $unit, string|array $data):

  • $unit - название колонки в базе данных.
  • $data - массив с данными, или название класса перечисления с данными о единицах измерения.

unitDefault(mixed $default):

  • $default - значение по умолчанию для поля.

Примеры использования:

<?php
use ForestLynx\MoonShine\Fields\Decimal;
//...
Decimal::make('Price', 'price')
    ->unit('unit', ['килограмм.', 'литр'])
    ->unitDefault(0);
//or
Decimal::make('Price', 'price')
    ->unit('unit', [0 => 'килограмм.', 1 => 'литр'])
    ->unitDefault(1);
//or
Decimal::make('Price', 'price')
    ->unit('unit', UnitEnum::class)
    ->unitDefault(UnitEnum::KILOGRAM);
//...

Как это выглядит в административной панели:

Просмотр Редактирование
preview edit

Лицензия

Лицензия MIT.