Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /**
  * 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();
 }
Esempio n. 3
0
 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;
 }