/** * Build the select object * * @param array $fields * * @return null|SugarQuery_Builder_Select */ public function select($fields = array()) { if (!is_array($fields)) { $fields = func_get_args(); } if (!is_object($this->select)) { $this->select = new SugarQuery_Builder_Select($this, array()); } $this->select->field($fields); return $this->select; }
/** * Create a select statement * * @param SugarQuery_Builder_Select $selectObj * * @return string */ protected function compileSelect(SugarQuery_Builder_Select $selectObj) { $return = array(); $addedFields = array(); if ($selectObj->getCountQuery() === true) { $return['count(0) AS record_count'] = 'count(0) AS record_count'; } foreach ($selectObj->select as $field) { if ($field->isNonDb()) { continue; } $compiledField = $this->compileField($field); $return[$compiledField] = $compiledField; if ($selectObj->getCountQuery() === true) { $this->sugar_query->groupBy("{$field->table}.{$field->field}"); } } return implode(", ", $return); }