Fixing erroris due to bad rebase

This commit is contained in:
José Lorenzo Rodríguez 2009-12-10 20:13:09 -04:30
parent 4b9e03c9f7
commit 8c4cad86c2
3 changed files with 47 additions and 168 deletions

View file

@ -419,35 +419,6 @@ class DboSource extends DataSource {
}
}
/**
* Modifies $result array to place virtual fields in model entry where they belongs to
*
* @param array $resut REference to the fetched row
* @return void
*/
function fetchVirtualField(&$result) {
if (isset($result[0]) && is_array($result[0])) {
foreach ($result[0] as $field => $value) {
if (strpos($field,'__') === false) {
continue;
}
list($alias,$virtual) = explode('__',$field);
if (!ClassRegistry::isKeySet($alias)) {
retrun;
}
$model = ClassRegistry::getObject($alias);
if (isset($model->virtualFields[$virtual])) {
$result[$alias][$virtual] = $value;
unset($result[0][$field]);
}
}
if (empty($result[0])) {
unset($result[0]);
}
}
}
/**
* Returns a single field of the first of query results for a given SQL query, or false if empty.
*
@ -1822,24 +1793,6 @@ class DboSource extends DataSource {
return $virtual;
}
/**
* Converts model virtual fields into sql expressions to be fetched later
*
* @param Model $model
* @param string $alias Alias tablename
* @param mixed $fields virtual fields to be used on query
* @return array
*/
function _constructVirtualFields(&$model,$alias,$fields) {
$virtual = array();
foreach ($fields as $field) {
$virtualField = $this->name("{$alias}__{$field}");
$expression = $model->virtualFields[$field];
$virtual[] = $expression . " {$this->alias} {$virtualField}";
}
return $virtual;
}
/**
* Generates the fields list of an SQL query.
*

View file

@ -1049,7 +1049,7 @@ class Model extends Overloadable {
* @access public
*/
function isVirtualField($field) {
return !empty($this->virtualFields) && array_key_exists($field,$this->virtualFields);
return !empty($this->virtualFields) && is_string($field) && array_key_exists($field,$this->virtualFields);
}
/**
@ -1170,9 +1170,9 @@ class Model extends Overloadable {
return $data[$name[0]][$name[1]];
}
}
if (!empty($data[0])) {
$name = key($data[0]);
return $data[0][$name];
if (isset($data[0]) && count($data[0]) > 0) {
return array_shift($data[0]);
}
} else {
return false;
}