¿Cómo valido URL, pero ignoro si http: // o en blanco?
-
24-10-2019 - |
Pregunta
Quiero validar un campo de formulario para URL. He establecido el valor predeterminado para el campo en http: //. Cuando el usuario no ingresa una URL y deja el http: //, dice URL inválida. No se requiere URL, por lo que si solo es http: //, no debe mostrar un mensaje de error. ¿Cómo puedo hacerlo ignorar si la persona presenta http: // como URL?
Gracias
Solución
http: // no es una URL válida, por lo que si desea permitirla de todos modos, hay 2 opciones
- crear un Regla de validación personalizada, que devuelve verdadero para una URL real + http: //
- utilizar el Antes de validar la devolución de llamada y establezca el campo URL en blanco si es solo http: //
Espero que ayude
EDITAR
Olvidé: no necesitas establecer requerido pero 'allowEmpty' => true
requerido -> El formulario debe contener un campo XYZ que se envíe al servidor
desagradable-> un campo puede estar en blanco
Agregué el enlace a la función de devolución de llamada anterior, pero de todos modos ... aquí está:
en tu clase de modelo (supongo que es User
):
class User extends AppModel {
..
function beforeValidate() {
if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
$this->data['User']['url'] = '';
}
return true;
}
..
}