モデル「User」を継承するモデルの1つ(「CustomUser」)に属性を追加しようとしています。
この属性を「createUser」の形式で検証パスワードフィールドとして使用したいと思います。「パスワード」フィールドが1つしかないDBを変更できないため、仮想属性を使用したいと思います。
しかし、フォームを含むビューを取得しようとすると、次のエラーが表示されます。
プロパティ「User.password_verification」が定義されていません。
これは、エラーが発生した行です。
echo $form->labelEx($user,'password_verification');
echo $form->textField($user,'password_verification',array('size'=>30,'maxlength'=>40));
私のUser.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()
機能に問題があると思いますか?何が問題になるのか、何か考えがありますか?