Я реализовал класс поведения crypt
, который можно прикрепить к модели AR, чтобы прикрепленные атрибуты сохранялись в зашифрованном виде и извлекались в виде расшифрованной строки.
class User extends CActiveRecord
{
public function behaviors()
{
return array(
'crypt' => array(
// this assumes that the behavior is in the folder: protected/behaviors/
'class' => 'application.behaviors.CryptBehavior',
// this sets that the attributes to be encrypted/decrypted are encryptedfieldname of the model
'attributes' => array('password'),
'useAESMySql' => true
)
);
}
}
Это работает нормально. У меня также есть собственный класс Myuser
, который расширяет модель User
для написания моих пользовательских функций, поэтому, если я внесу некоторые изменения в свою таблицу user
и регенерирую модель, я не потеряю свои собственные функции.
Если я перенесу свою функцию behavior
в класс MyUser
, поведение не будет привязано и не будет работать должным образом.
class MyUser extends User
{
public function behaviors()
{
return array(
'crypt' => array(
// this assumes that the behavior is in the folder: protected/behaviors/
'class' => 'application.behaviors.CryptBehavior',
// this sets that the attributes to be encrypted/decrypted are encryptedfieldname of the model
'attributes' => array('password'),
'useAESMySql' => true
)
);
}
public function customfn1()
{
//some code goes here...
}
}
Любая помощь будет оценена по достоинству. Ссылка: Поведение в крипте