Внедрих 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...
}
}
Всяка помощ ще бъде оценена. Връзка за справка: Поведение на криптата