Skip to content

forest-lynx/moonshine-decimal-field

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Поле Decimal для Moonshine

Latest Stable Version Total Downloads Software License
Laravel PHP PHP

Documentation in English

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

Note

Редактирование поля в режиме предварительного просмотра осуществляется через всплывающее окно, как это предусмотрено методом полей updateInPopover() админ панели MoonShine.

Note

Валидация для единиц измерения не поддерживается.

Совместимость

Версия пакета Версия админ-панели MoonShine
^1.x ^2.18.0
^2.x ^3.x

Содержание

Установка

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

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 $column = null, \Closure|array|Options|string $data, ?Closure $formatted = null):

  • $column - связь столбца в базе и атрибута name у поля ввода.
  • $data - Для создания поля типа Enum нужно передать название класса (например: App\Enums\Unit::class). Для формирования поля типа Select нужно передать опции, как через метод options() поля Select.
  • $formatted - замыкание для форматирования значения поля в режиме preview.

unitDefault(mixed $default) идентичен методу default(),

unitNullable() идентичен методу nullable(),

unitSearchable() идентичен методу searchable(),

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

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

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

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

Лицензия

Лицензия MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published