Balík obsahuje tri enumy s reťazcovými hodnotami v RoundlyConsulting\Attributes\Enums:
| Enum | Prípady (hodnota) |
|---|---|
AttributeType | String_ (string), Integer (integer), Float_ (float), Boolean (boolean), Array_ (array), DateTime (datetime) |
UniqueScope | None (none), Owner (owner), Global_ (global) |
RevisionType | Attached (attached), Updated (updated), Detached (detached) |
Každý používa trait Helpers z enums-for-laravel, takže nad rámec vlastných metód získava values(), names(), labels(), options(), toOptions(), toArray(), collect(), count(), random(), readable()/label(), vyhľadávanie prípadov (fromName(), tryFromName(), fromLabel(), tryFromLabel(), hasName(), hasValue()) a fluentné porovnávanie (is(), isNot(), isIn(), isNotIn(), whenIs*()) — praktické pre výber typu poľa, API schému či administráciu:
use RoundlyConsulting\Attributes\Enums\AttributeType;
use RoundlyConsulting\Attributes\Enums\UniqueScope;
// Value => label map for a select input
AttributeType::toOptions(); // Collection: ['string' => 'String', 'integer' => 'Integer', ...]
AttributeType::toArray(); // the same map as a plain array
// Case lookups
AttributeType::fromName('Integer'); // AttributeType::Integer
AttributeType::hasValue('datetime'); // true
// Comparators and domain methods
AttributeType::DateTime->isIn([AttributeType::DateTime, AttributeType::Integer]); // true
UniqueScope::Global_->enforces(); // true — None is the only scope that does notPozor na validationRule()
AttributeType má vlastnú inštančnú metódu validationRule(), ktorá vracia pravidlo Laravelu pre hodnotu daného typu (string, integer, numeric, boolean, array, date). Zámerne zakrýva statické pravidlo príslušnosti z traitu, preto si pravidlo in: v prípade potreby zostavte z hodnôt. UniqueScope a RevisionType statické validationRule() z traitu sprístupňujú bežne:
AttributeType::Integer->validationRule(); // 'integer' — the rule for a value of this type
'in:'.AttributeType::values()->implode(','); // in:string,integer,float,boolean,array,datetime
UniqueScope::validationRule(); // 'in:none,owner,global'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.