Comment puis-je valider l'URL, mais si ignorer http: // ou vide?
-
24-10-2019 - |
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
La solution
http: // est pas une URL valide, donc si vous voulez lui permettre de toute façon il y a 2 options
- règle de validation personnalisée , que les rendements réels pour un vrai url + http: //
- 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;
}
..
}