Yii validation d'un domaine spécifique
problème defenition
j'ai un modèle appelé "user.php'
j'ai quelques règles de validation sur les mêmes comme suit
je vais maintenant créer un formulaire de réinitialisation de mot de passe
dans ce formulaire, j'ai une zone de texte nom e-mail (même e-mail utilisé dans le modèle utilisateur)
dans le formulaire de réinitialisation de mot de passe je voudrais vérifier météo cet utilisateur est enregistrée si elle a enregistré l'on va envoyer le lien de réinitialisation de mot de passe
JE NE SAIS PAS COMMENT VAIDATE CE CHAMP E-MAIL , TOUTE AIDE TRÈS APPRÉCIABLE QUE JE SUIS NOUVEAU DANS YII
user.php
class Users extends CActiveRecord
{
public $cpassword;
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'users';
}
public function rules()
{
//NOTE: you should only define rules for those attributes that
//will receive user inputs.
return array(
array('email, password, user_type , cpassword','required'),
array('email', 'length', 'max'=>200),
array('email', 'unique'),
array('email', 'email'),
array('password', 'length', 'max'=>300),
array('cpassword', 'length', 'max'=>300),
array('user_type', 'length', 'max'=>5),
array('cpassword', 'compare', 'compareAttribute' => 'password'),
//The following rule is used by search().
//Please remove those attributes that should not be searched.
array('id, email, password, user_type ', 'safe', 'on'=>'search'),
);
}
public function relations()
{
return array(
);
}
public function attributeLabels()
{
return array(
'id' => 'ID',
'email' => 'Email',
'password' => 'Password',
'user_type' => 'User Type',
'cpassword' => 'Confirm Password'
);
}
public function search()
{
//Warning: Please modify the following code to remove attributes that
//should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('email',$this->email,true);
$criteria->compare('password',$this->password,true);
$criteria->compare('user_type',$this->user_type,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
public function beforesave()
{
$this->password=md5($this->password);
return true;
}
}
- Vous êtes à la recherche pour vérifier si un utilisateur existe, basée sur la saisie adresse e-mail?
- exactement , mais comment vérifier qu'un champ ; est-ce un bon moyen de créer des modèles différents pour la même table
- Vous pouvez utiliser des scénarios, qui sont différentes des règles de validation basé sur différents scénarios, par exemple, il y a des règles différentes pour la création d'un nouveau record vs mise à jour d'un enregistrement existant. Vous pouvez lire sur les scénarios ici - yiiframework.com/wiki/266/understanding-scenarios
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier sur le présenter avec quelque chose comme:
Si vous voulez vraiment utiliser le modèle, vous pouvez configurer une règle où le courrier doit être unique comme suit:
Vous pouvez ensuite vérifier si le modèle est valide sur le bouton soumettre, plus précisément le champ e-mail. Si elle ne marche pas valider l'adresse e-mail existe
Dernier, vous pouvez valider un modèle unique attribut de la sorte:
Ici est une façon de faire de l'action complète (pas la meilleure façon mais le plus facile à comprendre!)