示例#1
0
 function afterFind($type, &$data)
 {
     if (!empty($data) and is_array($data)) {
         $fresh_models = false;
         $_items = array_values($data);
         if ($data === $_items and !empty($_items[0][$this->alias])) {
             //this is a modeled data array
             $fresh_models = true;
             $this->_get_params_fields();
         }
         $models_list = array_merge(array($this->alias), array_keys($this->hasOne), array_keys($this->belongsTo));
         foreach ($data as $k => $record) {
             if ($fresh_models) {
                 $models_list = array_keys($record);
             }
             foreach ($models_list as $model) {
                 if (!empty($data[$k][$model])) {
                     if (isset($data[$k][$model]['extras'])) {
                         $extras = new Base64($data[$k][$model]['extras']);
                         $data[$k][$model]['extras'] = $extras->decode();
                     }
                     foreach ($this->params_fields as $params_field) {
                         if (isset($data[$k][$model][$params_field])) {
                             $params = new Parameter($data[$k][$model][$params_field]);
                             $data[$k][$model][$params_field] = $params->toArray();
                         }
                     }
                     if (!in_array($model, array('TagItem', 'Tag')) and !empty($this->hasMany['TagItem']) and isset($data[$k]['Tag'])) {
                         $tags = !is_null(Arr::getVal($data[$k]['Tag'], array('[n]', 'title'))) ? Arr::getVal($data[$k]['Tag'], array('[n]', 'title')) : array();
                         $data[$k][$model]['tags'] = implode(',', $tags);
                     }
                 }
             }
         }
     }
 }