`prohibits` - взаємовиключна валідація
Користувач може платити карткою АБО PayPal. Не обома.
Писати кастомну логіку? Є вбудоване правило.
prohibits гарантує, що поле не може бути присутнім разом з іншим.
Коли корисно:
- Взаємовиключні способи оплати
- Або email, або телефон
- Умовні обмеження полів
Схожі правила:
required_without— потрібно A, якщо B немаєrequired_with— потрібно A, якщо B єprohibits— A забороняє B
Порада: комбінуйте з required_without для сценарію “або A, або B, але не обидва”.
public function rules()
{
return [
'card_number' => 'prohibits:paypal_email',
'paypal_email' => 'prohibits:card_number',
'email' => 'required_without:username|prohibits:username',
'username' => 'required_without:email|prohibits:email',
];
}