public function get($id = null) { $request = CoreApp::getRequest(); $selectTable = QueryBase::tableizeModelName($this->modelClass); $parsedResources = $this->parseResources($request->getResourceArray()); $queryBase = new QueryBase($this->modelClass); $constraint = new Constraints(); if (empty($id)) { $resourceArray = $request->getResourceArray(); $id = $resourceArray[count($resourceArray) - 1]; } $queryBase->Select(); if (!empty($parsedResources['joins'])) { $joinsArray = array_map("core\\Inflector::tableize", $parsedResources['joins']); $queryBase->Join($joinsArray); } $constraint->term("{$selectTable}" . ".id", "=", $id); if (!empty($parsedResources['constraints'])) { foreach ($parsedResources['constraints'] as $kv) { $table = Inflector::tableize($kv->resource) . ".id"; $value = $kv->value; $constraint->andTerm($table, "=", $value); } } $queryBase->Where($constraint); $sql = $queryBase->getSelect(); $bindValues = $queryBase->getBindValues(); if ($this->query($sql, $bindValues)) { return $this->getResultsSet(); } return false; }
/** * Constructor accepts the Request object and an optional array of resources. * The resources are values obtained from the URL by the Request object. * Nested controller instances (i.e. /controllerA/id/Controller/b) will receive * a trunctated version of the Request->resources array. @see init() for details. * @param \core\Request $request * @param array $resources */ public function __construct($resources = null) { $this->request = CoreApp::getRequest(); if (is_null($resources)) { $this->resources = $this->request->getResourceArray(); } else { $this->resources = $resources; } $reflectionClass = new \ReflectionClass($this); $this->controllerName = $reflectionClass->getName(); }
public static function getAll($resources = null) { if (is_null($resources)) { $resources = CoreApp::getRequest()->getResources(); } $modelClass = self::setModelInstance(); $connector = self::setConnector($modelClass); if (is_null($connector)) { return $connector; } $models = []; $rs = $connector->getAll(); if (is_array($rs)) { foreach ($rs as $row) { $rowModel = self::setModelInstance(); $rowModel->setAttributes($row); $models[] = $rowModel; } } return $models; }