/** * * @return */ public function get() { // Disable strictness on model $this->model->setStrict(BaseSchema::STRICT_NONE); // handle stubs, if requested if ($this->request->params('stub')) { $data = $this->model->stub($this->request->params('stubType')); foreach ($data as $key => $row) { $data[$key] = $this->model->filter($row); } return $this->model->filter($data); } // parse the query string $this->parseQueryString(); // Extract the data from the parseResult. // Set as separate methods so that subclasses can selectively // override $conditions = $this->getFindConditions(); $fields = $this->getFindFields(); $sort = $this->getFindSort(); $limit = $this->getFindLimit(); $skip = $this->getFindSkip(); $misc = $this->getFindMisc(); $field = $this->request->params('distinctCount'); // a field name if ($field) { return $this->handleDistinctCount($field, $conditions, $misc); } $findResult = $this->model->find($conditions, $fields, $sort, $limit, $skip, $misc); $metaResult = []; if ($this->request->params('count')) { $metaResult['_meta']['count'] = $this->model->count($conditions); } // Pass to model for processing return array_merge($findResult, $metaResult); }