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

Ak má byť zápis overený, vráťte z rules() validačné pravidlá Laravelu. Predvolene je to prázdne pole, takže sa nič neoveruje, kým to nezapnete:

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use RoundlyConsulting\Options\BaseOption;

final class SeatLimitOption extends BaseOption
{
    public function key(): string
    {
        return 'seat-limit';
    }

    public function default(): mixed
    {
        return 5;
    }

    public function castAs(): string|CastsAttributes
    {
        return 'integer';
    }

    public function rules(): array|string
    {
        return ['required', 'integer', 'min:1', 'max:100'];
    }
}

Pravidlá sa aplikujú na pole s názvom value, ešte pred castom a pred uložením. Neplatné hodnoty vyhodia Illuminate\Validation\ValidationException:

use Illuminate\Validation\ValidationException;

try {
    Options::set(SeatLimitOption::class, 250, $team);
} catch (ValidationException $e) {
    $e->errors(); // ['value' => ['…']] — rules are applied to a field named "value"
}

Kde validácia platí

  • Pri každom zápise cez set(): fasáda, fluent API, helpery, HasOptions, setMany(), remember() pri ukladaní, set() skupiny aj options:set.
  • setMany() aj set() skupiny overia celú dávku ešte pred prvým zápisom — jediná neplatná hodnota znamená, že sa neuloží nič.
  • Pravidlá môžu byť pole alebo reťazec oddelený zvislou čiarou, napríklad 'integer|min:0'.
  • Import zapisuje surové riadky a rules() nespúšťa. Options::fake() overuje rovnako ako skutočný manager — neplatný zápis vyhodí výnimku a nezaznamená sa.

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.