NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Metrics for Laravel

Formátovanie čísel

formatUsing() prijíma Closure(float): string a pridá do výsledku kľúč formatted bez zmeny surových čísel — graf vykreslí hodnotu, popisok vypíše reťazec:

use Illuminate\Support\Number;

Metrics::value()
    ->sum(Order::query(), 'total')
    ->formatUsing(fn (float $value): string => Number::currency($value, 'USD'))
    ->toArray();
// result.value => 1500.0, result.formatted => "$1,500.00"

Trendy a členenia

Pri trendoch a členeniach sa formátovač použije na každý bod a formatted je mapa s rovnakými kľúčmi:

use Illuminate\Support\Number;

Metrics::trend()
    ->sum(Order::query(), 'total')
    ->daily()
    ->range('MTD')
    ->formatUsing(fn (float $value): string => Number::abbreviate($value))
    ->toArray();
// result.formatted => ['2024-06-01' => '12K', '2024-06-02' => '9K', ...]

Metrics::partition()
    ->count(User::query(), 'plan')
    ->formatUsing(fn (float $value): string => number_format($value).' users')
    ->toArray();
// result.formatted => ['pro' => '120 users', 'free' => '80 users']
  • Value a Progress — value sa naformátuje do jedného reťazca formatted.
  • Trend — každý interval z trends sa naformátuje do mapy formatted.
  • Partition — každá hodnota z partitions sa naformátuje do mapy formatted.

prefix() a suffix() sú samostatné, jednoduchšie prezentačné údaje: prechádzajú obálkou nezmenené a frontend ich umiestni okolo čísla. Pomocníci Number v Laraveli vyžadujú PHP rozšírenie intl.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.