Skip to content

Latest commit

 

History

History
112 lines (98 loc) · 5.17 KB

README.md

File metadata and controls

112 lines (98 loc) · 5.17 KB

Поле 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.