Čítanie zostatkov
balance() sčíta záznamy jednej skupiny. Ak zadáte okamih, zrekonštruuje zostatok tak, ako bol vtedy — počítajú sa len záznamy s created_at v tom okamihu alebo skôr. has() porovná zostatok so sumou, predvolene 1:
Credits::for($user)->balance(); // 70 — the default bucket
Credits::for($user)->balance(now()->subWeek()); // as of a point in time
Credits::for($user)->bucket('promotional')->balance(now()->startOfMonth());
Credits::for($user)->has(100); // true if balance >= 100
Credits::for($user)->bucket('purchased')->has(100, now()->subWeek());V traite sú to creditsBalance() a hasCredits():
$user->creditsBalance(); // 70 — the default bucket
// Balance as of a point in time (rows with created_at <= $at):
$user->creditsBalance(now()->subWeek());
$user->creditsBalance(at: now()->startOfMonth(), bucket: 'promotional');Overenie dostupných kreditov
hasCredits() porovná zostatok so sumou — predvolene 1 — a prijíma tie isté argumenty okamihu a skupiny:
$user->hasCredits(); // true if balance >= 1
$user->hasCredits(100); // true if balance >= 100
$user->hasCredits(100, now()->subWeek()); // ... as of a week ago
$user->hasCredits(100, bucket: 'purchased'); // ... in one buckethas() aj hasCredits() sú len čítanie, nie rezervácia. Na bezpečné míňanie zavolajte deduct() a nechajte rozhodnúť ochranu pred prečerpaním pod jej zámkami.
Vzťah knihy pohybov
credits() je štandardný vzťah MorphMany, takže záznamy máte na jeden dotaz:
$user->credits()->latest()->get(); // every ledger row, newest first
$user->credits()->deductions()->count(); // the model's query scopes work on the relation
$user->credits()->withTrashed()->get(); // include soft-deleted rowsCredit používa soft deletes. Zmazaný záznam ostane v tabuľke, no do žiadneho zostatku sa už nezapočíta a vo vzťahu ho uvidíte len cez withTrashed().
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.