Валидация уважения для двух полей
Мне нужно проверить данные формы с помощью Respect. По крайней мере одно из этих полей должно иметь значение: $vfname
а также $vlname
, После некоторых проб и ошибок я обнаружил, что могу объединять и тестировать с notEmpty()
:
v::StringType()->notEmpty()->assert($vfname . $vlname)
Но это кажется очень смешным. Есть ли лучший способ проверки, чтобы хотя бы одно из этих полей имело значение?
2 ответа
Поддержка валидации OR
операции с OneOf
править. Кроме того, если вы проверяете данные формы, Key
правило пригодится
v::oneOf(
v::key('vfname', v::stringType()->notEmpty()),
v::key('vlname', v::stringType()->notEmpty())
)
->assert(['vfname' => $vfname, 'vlname' => $vlname]);
Почему не тогда?
v::boolType()->validate(!empty($vfname) || !empty($vlname));
Примечание: преимущество использования empty()
в том, что он не поднимет Undefined variable
обратите внимание, если это вопрос для вас.