class EditprofileForm extends User
Суть в том, что есть поля
Username => text disabled
Email => text disabled
Company Name => text
Company Type Id => dropbox
Telephone => text
Comment => textArea
Password Old
Password Confirm
Password Confirm2
так вот. Пытался наколдовать в rules, чтобы если старый пароль пустой, тогда никаких валидаций не происходит.
Код: Выделить всё
class EditprofileForm extends User
{
public $username;
public $email;
public $password;
public $password_old;
public $password_confirm;
public $password_confirm2;
public $telephone;
public $comment;
public $company_name;
public $company_type_id;
/**
* @inheritdoc
*/
public function rules()
{
return [
['password_old', 'findPasswords'],
[['username', 'email'], 'safe'],
[['password_confirm', 'password_confirm2', 'password_old'], 'string', 'min'=>6, 'when' => function($model){
return $model->password_old != '';
}],
[['password_confirm'], 'compare', 'compareAttribute'=>'password_confirm2',
'message'=> 'NEW_PASSWORD_INCORRECT WITH CONFIRM 2', 'when' => function($model){
return $model->password_old != '';
},],
[['password_confirm2'], 'compare', 'compareAttribute'=>'password_confirm',
'message'=> 'NEW_PASSWORD_INCORRECT WITH CONFIRM', 'when' => function($model){
return $model->password_old != '';
},
],
['telephone', 'required'],
['comment', 'string'],
['company_type_id', 'integer'],
['company_name', 'string'],
];
}
}
А вот проверка на return $model->password_old != ''; вообще игнорируется
Возможно есть более простой метод реализации либо не надо было class EditprofileForm создавать.
Заранее всем спасибо