1

我有 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 属性的数据以及是否可以?

4

0 回答 0