如何在yii用户模型中使电子邮件独一无二

如何在yii用户模型中使电子邮件独一无二,yii,Yii,验证代码为 return array( array('firstname, lastname, confirm_email, education, email, password, occupation,location , birthdate, interest,gender,created, modified', 'required'), array('email', 'email'),

验证代码为

 return array( 
         array('firstname, lastname, confirm_email, education, email, password, occupation,location , birthdate, interest,gender,created, modified', 'required'),

                     array('email', 'email'),
                     array('password', 'length', 'max'=>20, 'min' => 5,'message' => "Incorrect fi (length between 5 and 20 characters)."),
                     array('firstname', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u','message' => UserModule::t("Incorrect symbols (A-z0-9).")),
                     array('email', 'unique'),
    );
试试这个:

根据您给定的代码,它似乎还可以

您可以使用此url验证验证:


您可以按照以下规则使您的电子邮件在yii用户模式中唯一

public function rules() {
   return array(
     ...
     array('email', 'email'),
     array('email', 'unique', 'className' => 'User',
        'attributeName' => 'email',
        'message'=>'This Email is already in use'),
     ...
); }
这里className是用户模型类的名称,attributeName是db电子邮件字段名

您也可以查看下面的链接


谢谢

我认为您给出的语法非常完美。回答得好,请记住我们应该使用场景,这样在用户登录时此特定规则不适用…使用:
'on'=>'register'
public function rules() {
   return array(
     ...
     array('email', 'email'),
     array('email', 'unique', 'className' => 'User',
        'attributeName' => 'email',
        'message'=>'This Email is already in use'),
     ...
); }