Je veux définir la validation d'erreur dans le champ de saisie manuellement dans le contrôleur
Exemple: autre question forte>: je veux demander:
Bindmodel (dans ce cas, j'utilise BinModel dans les comportements) «LL causer une perte de relation avec un autre modèle
mais est une perte de validation de $ Var Var, aussi? P> P>
6 Réponses :
Vous recherchez probablement quelque chose Comme ça P>
Non, je veux définir la validation des erreurs, dans ce cas, $ Valider == null
Voulez-vous invalider un champ ou simplement montrer que le formulaire en général est invalide?
Si la validation $ est définie dans le modèle, BindModel ne provoque pas de capture de capture de Var Varate.
Quant à vous question principale; Vous pouvez définir / non défini / update $ validationErrors des modèles..eg p>
Ceci peut être atteint à l'aide de la méthode Invalidate qui signalera le champ comme ayant une erreur: -
$this->Model->invalidate('field_name', 'error message');
Ceci est probablement la réponse plus correcte car cela appelle la méthode de validateur qui fait presque i> la même chose que la réponse actuellement acceptée. Voir les documents 2.6 API ici: api.cakephp.org/2.6 /source-class-modelvalidator.html#278-288
@neobie C'est la bonne façon d'invalider un champ à CakePHP 2.x. Si cela ne fonctionne pas pour vous, vous faites probablement quelque chose d'autre mal.
Veuillez noter que les validateurs standard réinitialiser les messages de validation i> SO Invalidate () code> Les résultats sont détruits si vous effectuez des validations supplémentaires.
Étant donné que cela a été passé depuis que cela a été répondu afin de passer un message correct, vous devez le mettre comme suit:
$this->Model->validationErrors['limitTime'] = array("time is less than 30");
Si vous souhaitez invalider un modèle associé, vous pouvez utiliser quelque chose comme ceci:
$this->Model1->Model2->invalidate('Model2', __("Your validation message"));
Mise à jour 2019 pour CakePHP3
dans et dans si votre formulaire basé sur la table, et pour Formulaires modelless d'abord Besoin de créer yourcontroller.php code>
action.ctp code> p>
src / formulaire / tonform.php code> avec la définition de schéma, puis appelle
setErrors () code> sur
votre instance code> de contrôleur. P> p>
Pour Cake 2.0, Stackoverflow.com/questions/5765236/... Est-ce que l'astuce m'a fait.