我正在尝试向我的模型(“CustomUser”)之一添加一个属性,该模型继承了我的模型“User”。
我想以“createUser”形式使用此属性作为验证密码字段。我想使用虚拟属性,因为我无法修改只有一个字段“密码”的数据库。
但是,当我尝试获取包含表单的视图时,会显示此错误:
未定义属性“User.password_verification”。
这是发生错误的行:
echo $form->labelEx($user,'password_verification');
echo $form->textField($user,'password_verification',array('size'=>30,'maxlength'=>40));
我的用户.php:
class User extends CActiveRecord {
...
public function rules(){
return array(
array('username, password, email', 'required'),
array('created_by', 'numerical', 'integerOnly'=>true),
array('username, email', 'length', 'max'=>255),
array('password', 'length', 'max'=>32),
array('valid_from, valid_until, added_on', 'safe'),
array('username, email', 'unique'),
array('id, type, username, password, email, valid_from, valid_until,
added_on,created_by','safe','on'=>'search'),
);
...
}
我的 CustomUser.php
class CustomUser extends User
{
public $password_verification;
public function rules()
{
$newRules = array(
array('password_verification', 'required'),
array('password_verification', 'length', 'max' => 32),
array('password', 'compare', 'compareAttribute' => 'password_verification'),
array('password_verification', 'safe', 'on' => 'search'),
);
return array_merge(User::model()->rules(), $newRules);
}
}
你认为这是我的rules()
功能有问题吗?你知道可能是什么问题吗?