public function afterQuery(Atomik_Model_Builder $builder, Atomik_Model_Modelset $modelSet) { $modelName = $builder->name; $primaryKeyName = $builder->getPrimaryKeyField()->name; $manager = $builder->getManager(); $db = $manager->getDbInstance(); $rows = array(); $dataQuery = $db->q()->select() ->from($builder->tableName) ->where(array($primaryKeyName => null)); foreach ($modelSet as $row) { $primaryKey = $row[$primaryKeyName]; $key = $modelName . ':' . $primaryKey; if (($cached = $this->_memcache->get($key)) !== false) { // cache hit $rows[] = $cached; continue; } $data = $dataQuery->setParams(array($primaryKey))->execute()->fetch(); $this->_memcache->set($key, $data); $rows[] = $data; } $modelSet->setData($rows); }
public function afterQuery(Atomik_Model_Builder $builder, Atomik_Model_Modelset $modelSet) { $primaryKeyName = $builder->getPrimaryKeyField()->name; $rows = array(); // parses the results to rebuild the row with the dynamic fields foreach ($modelSet as $row) { $primaryKey = $row[$primaryKeyName]; if ($row[$this->_prefix('id')] === null) { // no dyn field $rows[$primaryKey] = $this->_stripDynamicKeysFromRow($row); continue; } if (!isset($rows[$primaryKey])) { $rows[$primaryKey] = $this->_stripDynamicKeysFromRow($row);; } $rows[$primaryKey][$row[$this->_prefix('field_name')]] = $row[$this->_prefix('field_value')]; } $modelSet->setData(array_values($rows)); }