J'ai un formulaire pour la création d'utilisateurs et je vérifierai le nom d'utilisateur existant à partir de l'une de nos API et je fais une règle avec la fonction de validation personnalisée et sa fonctionnement bien. Mais lors de la mise à jour du formulaire, la fonction personnalisée exécute également et affiche l'erreur "Nom d'utilisateur existant déjà" avec mon nom d'utilisateur.
Mes règles p> ma fonction de validation personnalisée, < / p> ici Ce que je veux, j'ai utilisé le même nom d'utilisateur que la fonction ne fonctionne pas mais j'ai changé à nouveau, puis devez appeler cette fonction pour vérifier unique. P > p>
3 Réponses :
Consultez le Validator unique Yii2 unique
HTTPS: / /www.yiiframewarework.com/doc/api/2.0/yi-validators-uniquevalidator p> Pour vous cas, il pourrait ressembler à p> ['username', 'unique', 'message' => Yii:t('app','Username Already exists')]
Merci d'avoir répondu, mais pour mon cas, je vérifie une validation unique avec une fonction personnalisée avec mes enregistrements API
Peut-être que vous pouvez utiliser un scénario pour la validation et la joindre à la création d'Action Yiiframework. Com / Doc / Guide / 2.0 / FR / Structure-Models
Ou ajoutez une condition à la fonction uniqueUnessers qui vérifiez si le nom d'utilisateur envoyé par rapport à l'ancien nom d'utilisateur (pour cet utilisateur spécifique) continuez au reste de la fonction.
Merci beaucoup, je vais essayer cette solution.
Vous pouvez le faire avec l'utilisation de scénario; ou vérifier le modèle est nouveau. P> public function uniqueUsers($attributes, $params)
{
if ($this->isNewRecord){
// Your validation controls
}
}
Cela permettra de changer nom d'utilisateur code> à une valeur non unique sur la mise à jour de l'enregistrement.
Vous pouvez utiliser cela aussi
['username', 'unique', 'when' => function($model) { return $model->isAttributeChanged('username'); }],