CodeIgniter に Datamapper ORM を使用していget_rules
ます。モデルのフィールドに「シリアル化」および「非シリアル化」のルールがあります。このフィールドにはシリアル化されたデータが格納され、取得get_rules
するとシリアル化が解除されます。
ただし、を呼び出した後save()
、フィールドに再アクセスしようとしていますが、配列ではなくシリアル化された文字列が返されます。
get_rules
が再度呼び出され、フィールドが配列を返すように、オブジェクトを再呼び出しまたは更新する方法はありますか?
これが私のモデルです:
class User extends DataMapper{
public $validation = array(
'password' => array(
'label' => 'Password',
'rules' => array('encrypt')
),
'preferences' => array(
'rules' => array('serialize'),
'get_rules'=> array('unserialize')
)
);
function __construct($id = NULL)
{
parent::__construct($id);
}
function post_model_init($from_cache = FALSE)
{
}
public function _encrypt($field)
{
if (!empty($this->{$field}))
{
$this->{$field} = md5($this->{$field});
}
}
}