allen_php 2012-02-16 10:54:51 3649次浏览 5条回复 0 0 0

CActiveForm 视图: 密码1 <?php echo $form->passwordField($model,'userPassword'); ?> 密码2 <?php echo $form->passwordField($model,'userPassword2'); ?>

报Property "user.userPassword2" is not defined.这个错误,是不是userPassword2这个名字一定要是数据表里的字段?

模型: array('userPassword', 'compare', 'compareAttribute'=>'userPassword2','message'=>'密码不一致'),

如果想用模型里的这个验证,应该怎么做?

  • 回复于 2012-02-16 11:14 举报

    在模型中定义userPassword2即可!

  • 回复于 2012-02-16 11:15 举报

    楼上说的没错!

  • 回复于 2012-02-16 11:31 举报

    模型里:

    public function attributeLabels()
    {
        return array(	
            'userName' => '用户名',
            'userPassword' => '用户密码',
            'userPassword2' => '用户密码2',
    			
        );
    }
    
    public function rules()
    {
        return array(
            array('userName, userPassword', 'required','message'=>'{attribute}不能为空'),
            array('userName', 'unique','message'=>'用户名{attribute}已被占用'),
            array('userName', 'length', 'max'=>64),
            array('userPassword', 'length', 'max'=>32),
            array('userPassword2', 'length', 'max'=>32),
            array('userPassword', 'compare', 'compareAttribute'=>'userPassword2','message'=>'密码不一致'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('userId, userName, userPassword, userType', 'safe', 'on'=>'search'),
        );
    }
    

    这样定义了,还是会报刚才那个错误?不是这样定义?

  • 回复于 2012-02-16 11:34 举报

    把userPassword2作为模型的一个属性值,按照类的属性定义
    public $userPassword2;

  • 回复于 2012-02-16 13:35 举报

    谢谢,解决了。哈哈。非常感谢

您需要登录后才可以回复。登录 | 立即注册