Yii personnalisé des erreurs de modèle
Je suis de l'enregistrement d'un modèle d'instance de l'exécution de certains actes de "beforeSave" fonction de modèle.
Je tiens à ajouter quelques messages d'erreur pour le modèle, puis de les obtenir dans le contrôleur et l'afficher à l'utilisateur.
Autant j'ai deux idées de la façon de mettre en œuvre cette:
- Utiliser un mannequin attribut avec ActiveRecord fonction
"addError": $this->addError("dummy"=>"my message");
Ce n'est pas la meilleure façon de le faire que je vais devoir inventer de nouvelles mannequin d'attributs. - Ajouter une nouvelle propriété "custom_errors" pour le modèle et la fonction "addCustomErrors"
Peut-être il ya un moyen intégré pour le faire, ou une extension?
De toute façon comment puis-je le faire?
Vous souhaitez ajouter des messages d'erreur à l'intérieur de
cause, j'ai par exemple télécharger un fichier et de vérifier qu'il est téléchargé sur le serveur, ou j'ai effectuer d'autres actions comme l'effacement du cache et qui n'ont rien à voir avec la validation
Tout cela doit avoir terminé avec succès avant vous appelez
Je ne suis pas sûr. Je suis le téléchargement d'un fichier avec swfuploader et juste remplir le "dossier" de champ dans le formulaire, effacer la mémoire cache est effectuée une fois le fichier enregistré, en fait, de toute façon, je veux dire à l'utilisateur l'action a été effectuée. Certains champs de l'enregistrement sont générés sur la base d'autres informations.
beforeSave
? Ce n'est pas une bonne idée, pourquoi ne faites-vous pas que lors de la validation?cause, j'ai par exemple télécharger un fichier et de vérifier qu'il est téléchargé sur le serveur, ou j'ai effectuer d'autres actions comme l'effacement du cache et qui n'ont rien à voir avec la validation
Tout cela doit avoir terminé avec succès avant vous appelez
save
...Je ne suis pas sûr. Je suis le téléchargement d'un fichier avec swfuploader et juste remplir le "dossier" de champ dans le formulaire, effacer la mémoire cache est effectuée une fois le fichier enregistré, en fait, de toute façon, je veux dire à l'utilisateur l'action a été effectuée. Certains champs de l'enregistrement sont générés sur la base d'autres informations.
OriginalL'auteur lvil | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le addError() mais il n'y a pas besoin de faire de faux attributs. Si une erreur ne se rapportent pas à rien sur le modèle lui-même alors votre faire quelque chose de mal :p
Donc dans votre cas il serait quelque chose comme:
Si il y a d'autres erreurs sur le
file
attribut ils acumlate de sorte que vous n'avez pas besoin de s'inquiéter à propos de l'écrasement.Ajouter l'erreur de ne pas l'effet de l'enregistrement du modèle. aussi longtemps qu'il le valide il doit enregistrer
J'ai besoin de valider que le dossier n'est pas créé à un mauvais moment de la journée. Ce que je fais mal?
OriginalL'auteur Paystey
Je ne vois pas le problème ici. Utilisez simplement addError() http://www.yiiframework.com/doc/api/1.1/CModel#addError-detail. Le modèle est conservée même après avoir invoqué
save()
sur elle, de sorte que vous pourriez faire quelque chose commeOriginalL'auteur Alfredo Castaneda Garcia