public function select() { $args = func_get_args(); $fields = false; $aggregation = false; foreach ($args as $arg) { if ($arg instanceof modelField) { if ($arg->getCollection()->getTableName() == $this->getTableName()) { $fields = true; } } if ($arg instanceof modelAggregation) { $aggregation = true; } } if (!$fields && !$aggregation) { array_unshift($args, $this); } $result = new modelResultSet(); $result->setStorageSource($this); call_user_func_array(array($result, 'select'), $args); return $result; }