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

Vytváranie žiadostí

Fasáda Requests je hlavný vstupný bod. Plne kvalifikovaná RoundlyConsulting\Requests\Facades\Requests funguje vždy; ak je názov voľný, zaregistruje sa aj krátky alias Requests:

use RoundlyConsulting\Requests\Facades\Requests;

$request = Requests::make()
    ->author($user)
    ->type('Claim')
    ->title('Expense reimbursement')
    ->description('Travel costs for the client visit.')
    ->meta(['ip' => request()->ip()])
    ->requireApprovalsFrom([$alice, $bob])   // saved approver models — only they may decide
    ->expiresAt(now()->addDays(7))
    ->create();

create() uloží žiadosť, priradí autora, otvorí schvaľovanie, ak sú zadaní schvaľovatelia, stupne alebo workflow, a vyvolá RequestCreated. requireApprovalsFrom() prijme uložený model alebo ich zoznam — rozhodovať môžu len oni alebo ich zástupcovia a ich kľúče sa zaznamenajú do require_approvals_from. Samotné id odmietne výnimkou InvalidApprover. Žiadosť a jej schvaľovacie kolo sa zapisujú spolu, takže kolo, ktoré sa nedá otvoriť, nezanechá žiadnu žiadosť.

Prehľad metód buildera

MetódaNastavuje
author(?Model)Polymorfného autora.
type(?string)Typ žiadosti, napr. Claim.
title(?string)Názov.
description(?string)Popis.
meta(iterable)Voľné meta údaje, uložené ako Collection.
status(Status)Počiatočný stav (predvolene New).
requireApprovalsFrom(Model|iterable)Deklarovaných schvaľovateľov — len uložené modely (samotné id vyhodí InvalidApprover); rozhodovať môžu iba oni alebo ich zástupcovia.
rule(ApprovalRule)Unanimous (predvolené), Quorum, Any alebo Weighted.
quorum(?int)Hranicu kvóra / váhy pre Quorum a Weighted.
stages(array)Ad-hoc postupnosť stupňov z objektov StageDefinition.
rejectOnStageRejection(bool)Či zamietnutý stupeň zamietne celú žiadosť (predvolene true).
workflow(?string)Pomenovanú predvoľbu z config('approvals.workflows').
stageApprovers(array)Jednu skupinu schvaľovateľov na stupeň pre viacstupňovú predvoľbu.
expiresAt(?CarbonInterface)Termín expirácie (prepíše default_ttl).
toDto()Vráti zostavené CreateRequestDto bez uloženia.
create()Terminálna metóda — uloží žiadosť, otvorí schvaľovanie a vráti Request.

Žiadosti bez schvaľovateľov

Deklarovať schvaľovateľov nie je povinné. Bez nich sa neotvorí žiadna schvaľovacia požiadavka a prvé schválenie či zamietnutie žiadosť okamžite uzavrie:

// No approvers declared — the first decision resolves the request.
$request = Requests::make()
    ->author($user)
    ->type('AccessRequest')
    ->title('Access to the billing dashboard')
    ->create();

Iba zostavenie DTO

toDto() vráti zostavené CreateRequestDto bez uloženia — hodí sa na zaradenie do fronty alebo neskoršie odovzdanie manažérovi:

// Build the DTO without persisting, then hand it to the manager.
$dto = Requests::make()
    ->author($user)
    ->title('Expense reimbursement')
    ->toDto();

$request = Requests::create($dto);

Termín expirácie

expiresAt() nastaví žiadosti termín. Bez neho sa použije requests.default_ttl (v minútach), ak je nastavené; inak žiadosť sama nikdy nevyprší (Zrušenie a expirácia).

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.