Question

Je veux valider un champ de formulaire pour l'URL. J'ai mis la valeur par défaut pour le champ à l'adresse http: //. Lorsque l'utilisateur ne pénètre pas dans une URL, et les feuilles http: //, il est dit URL non valide. URL n'est pas nécessaire, donc si c'est seulement http: //, il ne devrait pas afficher un message d'erreur. Comment puis-je faire ignorer si le requérant fournit personne http: // l'URL

Merci

Était-ce utile?

La solution

http: // est pas une URL valide, donc si vous voulez lui permettre de toute façon il y a 2 options

  1. règle de validation personnalisée , que les rendements réels pour un vrai url + http: //
  2. utilisez le avant et valider callback définir le champ URL pour vide si elle est juste http: //

espoir qui aide

EDIT

J'ai oublié: vous ne pas besoin de définir requis, mais 'allowEmpty' => true

nécessaire -> le formulaire doit contenir un xyz champ qui est envoyé au serveur

allowEmpty -> un champ peut être vide


J'ai ajouté le lien vers la fonction de rappel ci-dessus, mais de toute façon .. ici est:

dans votre classe de modèle (je suppose juste de User):

class User extends AppModel {
    ..

    function beforeValidate() {
        if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
            $this->data['User']['url'] = '';
        }
        return true;
    }
    ..
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top