9
votes

CakePHP: Comment définir la validation d'erreur dans le champ de saisie manuellement dans le contrôleur

Je veux définir la validation d'erreur dans le champ de saisie manuellement dans le contrôleur Exemple: xxx

autre question : 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?


1 commentaires

Pour Cake 2.0, Stackoverflow.com/questions/5765236/... Est-ce que l'astuce m'a fait.


6 Réponses :


0
votes

Vous recherchez probablement quelque chose Comme ça


2 commentaires

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?



15
votes

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 xxx


0 commentaires

15
votes

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');


3 commentaires

Ceci est probablement la réponse plus correcte car cela appelle la méthode de validateur qui fait presque 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 SO Invalidate () Les résultats sont détruits si vous effectuez des validations supplémentaires.



0
votes

É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");


0 commentaires

1
votes

Si vous souhaitez invalider un modèle associé, vous pouvez utiliser quelque chose comme ceci:

$this->Model1->Model2->invalidate('Model2', __("Your validation message"));


0 commentaires

0
votes

Mise à jour 2019 pour CakePHP3 dans yourcontroller.php xxx

et dans action.ctp xxx

si votre formulaire basé sur la table, et pour Formulaires modelless d'abord Besoin de créer src / formulaire / tonform.php avec la définition de schéma, puis appelle setErrors () sur votre instance de contrôleur.


0 commentaires