Непонятное обновление модели




$find = Model_User::model()->findByAttributes( array( 'password' => md5(123) ) );

$find->password = md5( 321 );

$find->save();



По идеи должно обновлять password?

Сегодня вот сделал такой код, какого то оно валидирует и остальные поля

Чтобы вообще не валидировать поля, можно написать




$find->save(false);



Чтобы валидировать только поле password надо написать




$find->save(true, array('password'));



А разве в таком случае остальные поля не должны проходить валидацию?

Смотрите последний аргумент CActiveRecord.save() или используйте CActiveRecord.saveAttributes().

И нужна ли в таком случае вообще валидация? Смысл валидировать хэш?

andy_s

А если у меня не хеш, то что??

Проблема состоит в том что я получаю модель, а не создаю.

То есть если:


$user = new Model_User;

$user->password = md5( 321 );

....

$user->save();

То здесь да, должны валидироватся все поля и ити в бд.

Но если я получил модель с данными, и мне надо обновить поле, что выше и показано, то разве не должно оно обновляться? Почему оно требует ввести и остальные поля (как будто они не указаны)

Проблема решена.