Validácia
ValidContactValue je samostatné znovupoužiteľné ValidationRule — použite ho na ľubovoľné pole. Hodnotu najprv normalizuje a potom ju overí podľa pravidiel druhu a stropu 255 znakov:
use RoundlyConsulting\Contacts\Enums\ContactType;
use RoundlyConsulting\Contacts\Rules\ValidContactValue;
$request->validate([
'email' => ['required', new ValidContactValue(ContactType::Email)],
]);Pravidlá FormRequestu na jeden riadok
ContactType::rules() vráti hotové pole pravidiel — pravidlá poľa daného druhu (required, string, …) plus ValidContactValue, ktoré kontroluje normalizovanú hodnotu — takže FormRequest zostane na jeden riadok a prijme presne to, čo prijmú addEmail(), addPhone() a addUrl() (' [email protected] ', '+421 900 000 000', 'example.com'):
public function rules(): array
{
return [
'email' => ContactType::Email->rules(), // or ContactType::rulesFor(ContactType::Email)
'phone' => ContactType::Phone->rules(),
];
}Pre registrovaný vlastný druh použite ContactRules::forValue(ContactType::Custom, 'whatsapp'). Validovaný vstup zostáva surovým reťazcom; normalizuje ho až balík pri pridaní.
Opakovateľné polia kontaktov
Pre opakovateľný zoznam dvojíc {type, value} vygenerujte pravidlá contacts.*: každý type musí byť vstavaný alebo registrovaný druh a každá value sa normalizuje a overí podľa pravidiel druhu, ktorý deklaruje jej položka:
use RoundlyConsulting\Contacts\Facades\Contacts;
use RoundlyConsulting\Contacts\Support\ContactRules;
$request->validate(Contacts::validationRules()); // keys: contacts, contacts.*.type, contacts.*.value
$request->validate(ContactRules::forArray('people')); // custom prefix
Contacts::validationRules();
// [
// 'contacts' => ['sometimes', 'array'],
// 'contacts.*.type' => ['required', 'string', 'in:email,phone,address,url,social,custom'],
// 'contacts.*.value' => ['required', 'string', new ValidContactEntryValue],
// ]
ContactRules::kinds(); // built-in kinds + every key in contacts.types
ContactRules::forValue(ContactType::Url); // same as ContactType::Url->rules()
ContactRules::forValue(ContactType::Custom, 'whatsapp'); // a registered custom kind's rulesPravidlo pre type akceptuje šesť vstavaných druhov plus každý registrovaný vlastný. Pravidlo pre value, ValidContactEntryValue, prečíta susedný type tej istej položky — contacts.3.value podľa contacts.3.type — a použije pravidlá daného druhu vrátane registrovaných pravidiel vlastného druhu. Položku s chýbajúcim alebo neznámym typom nechá na pravidlo pre type, ktoré chybu nahlási.
Chybové hlásenia
Pri chybe sa použije preklad contacts::errors.invalid_value („The given value is not a valid :type contact.“), ktorý pri vlastnom druhu uvedie jeho názov namiesto custom. Na úpravu alebo preklad publikujte contacts-translations.
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.