Tengo dos campos: Email y Telephone
Quiero crear una validación donde se requiera uno de dos campos y si uno o ambos campos están configurados, debería ser el formato correcto.
Intenté esto, pero no funciona, aunque necesito ambos
public static array $createValidationRules = [ 'email' => 'required_without:telephone|email:rfc', 'telephone' => 'required_without:email|numeric|regex:/^\d{5,15}$/', ];Es correcto que ambos campos produzcan el mensaje de error required_without si ambos están vacíos. Este mensaje de error dice claramente que el campo debe completarse si el otro no lo está. Puede cambiar el mensaje si es necesario:
$messages = [ 'email.required_without' => 'foo', 'telephone.required_without' => 'bar', ]; Sin embargo, debe agregar la regla nullable , por lo que las reglas de formato no se aplican cuando el campo está vacío:
$rules = [ 'email' => ['required_without:telephone', 'nullable', 'email:rfc'], 'telephone' => ['required_without:email', 'nullable', 'numeric', 'regex:/^\d{5,15}$/'], ]; Además: se recomienda escribir las reglas como una matriz, especialmente cuando se usan regex .