我有 CActiveRecord 模型Game属性game_data存储游戏的数据。我以这种方式存储了数据(在 beforeSave 方法中):
$this->data = gzcompress(json_encode($this->data));
我以以下方式提取数据(在 afterFind 方法内):
$this->data = json_decode(gzuncompress($this->data), true);
之后,我想使用game_data属性(添加/更改/删除)进行操作,但代码为我返回了意外的结果。代码和我的研究:
var_dump($this->data); // data that already stored in db for this game
array(1) {
["provably_fair"]=>
array(1) {
["server_seed"]=>
string(32) "dKOsfTsGvmvZe0VW6bcFnIhJKXDesKeM"
}
}
我正在尝试添加新的属性和值:
$this->data['provably_fair']['client_seed'] = $clientSeed;
但是$this->data的内容不会改变:
var_dump($this->data);
array(1) {
["provably_fair"]=>
array(1) {
["server_seed"]=>
string(32) "dKOsfTsGvmvZe0VW6bcFnIhJKXDesKeM"
}
}
如何修改此 CActiveRecord 属性的数据以及是否可以?