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

¿Fue útil?

Solución

http: // no es una URL válida, por lo que si desea permitirla de todos modos, hay 2 opciones

  1. crear un Regla de validación personalizada, que devuelve verdadero para una URL real + http: //
  2. 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;
    }
    ..
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top