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ľba | Predvolené | Popis |
|---|---|---|
--amount | 0 | Suma kreditov na aplikovanie. Musí byť celé číslo a môže byť záporná; iná hodnota skončí s nenulovým návratovým kódom. |
--description | null | Voliteľný popis, ktorý sa uloží na každý záznam. |
--bucket | nakonfigurovaná predvolená | Pomenovaná skupina, na ktorú sa zmena aplikuje. Bez nej sa použije default_bucket. |
--allow-overdraft | false | Povolí 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 chargedKontrola konfigurácie
Balík pridáva vlastnú sekciu do príkazu about v Laraveli:
php artisan about --only=credits| Riadok | Zobrazuje |
|---|---|
| Model | Názov triedy použitého modelu knihy pohybov. |
| Primary key type | credits.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 type | credits.key_type. |
| Overdraft | ALLOWED alebo BLOCKED — allow_overdraft sa číta ako boolean, rovnako ako pri ochrane pred prečerpaním. |
| Minimum balance | credits.minimum_balance, alebo INVALID, ak má hodnota chybný tvar — príkaz about funguje ďalej. |
| Default bucket | credits.default_bucket, alebo INVALID, ak má hodnota chybný tvar. |
| Scale | credits.scale, alebo INVALID, ak má hodnota chybný tvar. |
| Rounding | Režim zaokrúhľovania v zápise z konfigurácie, alebo INVALID, ak credits.rounding nepomenúva žiadny režim. |
| Modifiable resolvers | NONE 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 kryptomienOdoslaní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.