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

Artisan príkazy

credits:modify aplikuje jednu zmenu kreditov na každú entitu, ktorú vyhodnotí konfigurácia credits.modifiable, a to cez Credits::for($entity) — Credits::fake() ho preto zaznamená. Zaregistrujte jednu alebo viac closures — každá dostane callback $modify, ktorý zavolá pre každú entitu:

// config/credits.php
use App\Models\User;

'modifiable' => [
    function (Closure $modify): void {
        User::query()->each(fn (User $user) => $modify($user));
    },
],

Potom príkaz spustite:

php artisan credits:modify --amount=10 --description="monthly bonus"
# Modified credits on 42 entities.

php artisan credits:modify --amount=50 --description="monthly bonus" --bucket=promotional
php artisan credits:modify --amount=-5 --description="correction" --allow-overdraft
VoľbaPredvolenéPopis
--amount0Suma kreditov na aplikovanie. Musí byť celé číslo a môže byť záporná; iná hodnota skončí s nenulovým návratovým kódom.
--descriptionnullVoliteľný popis, ktorý sa uloží na každý záznam.
--bucketnakonfigurovaná predvolenáPomenovaná skupina, na ktorú sa zmena aplikuje. Bez nej sa použije default_bucket.
--allow-overdraftfalsePovolí odpisy, ktoré zostatok dostanú pod minimum_balance (tá nemusí byť nula).
  • Každý záznam, ktorý príkaz zapíše, nesie meta ['info' => 'Credits modified by credits:modify command.'].
  • Vyhodnotené entity, ktoré nie sú modely Creditable, sa s varovaním preskočia a beh nezlyhá.
  • Preskočí sa aj entita, ktorej odpis ochrana pred prečerpaním odmietne: beh pokračuje so zvyškom a pre každú vypíše riadok Refused.
  • Keď príkaz prejde všetky entity, oznámi, koľko ich odmietol, a skončí s nenulovým návratovým kódom.
  • Každá zmena je vlastná transakcia, takže entitám, ktorým sa kredity odpísali, ostanú odpísané — znova spustite príkaz len pre odmietnuté (napríklad s closure, ktorá vyberie práve ich), nie pre celú množinu.
  • Ak nie sú zaregistrované žiadne closures, príkaz skončí úspešne a nič nezmení.
php artisan credits:modify --amount=-50 --description="monthly fee"
# Refused App\Models\User #2: Insufficient credits: tried to deduct 50 but only 20 are available.
# Modified credits on 41 entities.
# Refused 1 entity with insufficient credits.
echo $?   # 1 — the run finished, but not every entity was charged

Kontrola konfigurácie

Balík pridáva vlastnú sekciu do príkazu about v Laraveli:

php artisan about --only=credits
RiadokZobrazuje
ModelNázov triedy použitého modelu knihy pohybov.
Primary key typecredits.primary_key_type — zobrazené zámerne, lebo id iného typu než bigint nemôže na striktnom engine držať stĺpec morphs() iného balíka.
Creditable key typecredits.key_type.
OverdraftALLOWED alebo BLOCKED — allow_overdraft sa číta ako boolean, rovnako ako pri ochrane pred prečerpaním.
Minimum balancecredits.minimum_balance, alebo INVALID, ak má hodnota chybný tvar — príkaz about funguje ďalej.
Default bucketcredits.default_bucket, alebo INVALID, ak má hodnota chybný tvar.
Scalecredits.scale, alebo INVALID, ak má hodnota chybný tvar.
RoundingRežim zaokrúhľovania v zápise z konfigurácie, alebo INVALID, ak credits.rounding nepomenúva žiadny režim.
Modifiable resolversNONE alebo „N registered“ — len počet, nikdy nie to, čo vyhodnocujú; INVALID, ak má credits.modifiable chybný tvar.

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.