forest-lynx / moonshine-decimal-field
1.3.1
2024-08-21 08:43 UTC
Requires
- php: ^8.1
- ext-intl: *
- moonshine/moonshine: ^2.13
Conflicts
- moonshine/moonshine: <2.0
README
英文文档(English)
MoonShine管理面板中用于处理十进制数的字段 MoonShine. 从Text字段继承。在编辑时,字段应用了@money Alpine.js掩码。
内容
安装
安装命令
composer require forest-lynx/moonshine-decimal-field
使用
<?php //... use ForestLynx\MoonShine\Fields\Decimal; //... Decimal::make('Price', 'price');
注意
在创建字段时使用 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(); //...
注意
$precision
在 precision()
、naturalNumber()
方法中的值会覆盖之前通过这些方法定义的小数位数。
<?php use ForestLynx\MoonShine\Fields\Decimal; //... Decimal::make('Sum', 'sum') ->precision(3) ->naturalNumber(4); //...
此代码将重写小数位数后的数字为 4。
注意
在处理自然数时,从 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); //...
在管理面板中的样子