protected function _filterResults(&$resultSet, Model $Model, $filtered = array())
{
if (!is_array($resultSet)) {
return array();
}
$current = reset($resultSet);
if (!is_array($current)) {
return array();
}
$keys = array_diff(array_keys($current), $filtered, array($Model->alias));
$filtering = array();
foreach ($keys as $className) {
if (!isset($Model->{$className}) || !is_object($Model->{$className})) {
continue;
}
$LinkedModel = $Model->{$className};
$filtering[] = $className;
foreach ($resultSet as $key => &$result) {
$data = $LinkedModel->afterFind(array(array($className => $result[$className])), false);
if (isset($data[0][$className])) {
$result[$className] = $data[0][$className];
} else {
unset($resultSet[$key]);
}
}
}
return $filtering;
}