getName() public méthode

public getName ( ) : string
Résultat string
 /**
  * Get count of data
  * @return int
  */
 public function getCount()
 {
     try {
         $primary = $this->data_source->getPrimary();
     } catch (\LogicException $e) {
         return $this->data_source->count('*');
     }
     return $this->data_source->count($this->data_source->getName() . '.' . (is_array($primary) ? reset($primary) : $primary));
 }
 protected function buildJoins($val, $inner = FALSE)
 {
     $driver = $this->selection->getConnection()->getSupplementalDriver();
     $reflection = $this->selection->getConnection()->getDatabaseReflection();
     $joins = array();
     preg_match_all('~\\b([a-z][\\w.:]*[.:])([a-z]\\w*|\\*)(\\s+IS\\b|\\s*<=>)?~i', $val, $matches);
     foreach ($matches[1] as $names) {
         $parent = $this->selection->getName();
         if ($names !== "{$parent}.") {
             // case-sensitive
             preg_match_all('~\\b([a-z][\\w]*|\\*)([.:])~i', $names, $matches, PREG_SET_ORDER);
             foreach ($matches as $match) {
                 list(, $name, $delimiter) = $match;
                 if ($delimiter === ':') {
                     list($table, $primary) = $reflection->getHasManyReference($parent, $name);
                     $column = $reflection->getPrimary($parent);
                 } else {
                     list($table, $column) = $reflection->getBelongsToReference($parent, $name);
                     $primary = $reflection->getPrimary($table);
                 }
                 $joins[$name] = ' ' . (!isset($joins[$name]) && $inner && !isset($match[3]) ? 'INNER' : 'LEFT') . ' JOIN ' . $driver->delimite($table) . ($table !== $name ? ' AS ' . $driver->delimite($name) : '') . ' ON ' . $driver->delimite($parent) . '.' . $driver->delimite($column) . ' = ' . $driver->delimite($name) . '.' . $driver->delimite($primary);
                 $parent = $name;
             }
         }
     }
     return $joins;
 }
Exemple #3
0
 /**
  * Returns referencing rows.
  * @param  string
  * @param  string
  * @return GroupedSelection
  */
 public function related($key, $throughColumn = NULL)
 {
     $groupedSelection = $this->table->getReferencingTable($key, $throughColumn, $this[$this->table->getPrimary()]);
     if (!$groupedSelection) {
         throw new Nette\MemberAccessException("No reference found for \${$this->table->getName()}->related({$key}).");
     }
     return $groupedSelection;
 }
Exemple #4
0
 /**
  * Returns specified row.
  *
  * @param mixed $key Row's primary key
  * @return HyperRow|NULL if there is no such row
  */
 public function offsetGet($key)
 {
     $result = $this->selection->offsetGet($key);
     if ($result instanceof ActiveRow) {
         return $this->factory->createRow($result, $this->selection->getName());
     }
     return $result;
 }
Exemple #5
0
 public function __isset($key)
 {
     $this->access($key);
     if (array_key_exists($key, $this->data)) {
         return isset($this->data[$key]);
     }
     list($table, $column) = $this->table->getConnection()->getDatabaseReflection()->getBelongsToReference($this->table->getName(), $key);
     $referenced = $this->getReference($table, $column);
     if (!isset($referenced)) {
         $this->access($key, TRUE);
         return FALSE;
     }
     return TRUE;
 }
Exemple #6
0
 public function &__get($key)
 {
     $this->access($key);
     if (array_key_exists($key, $this->data)) {
         return $this->data[$key];
     }
     $this->access($key, TRUE);
     list($table, $column) = $this->table->getConnection()->getDatabaseReflection()->getBelongsToReference($this->table->getName(), $key);
     $referenced = $this->getReference($table, $column);
     if ($referenced !== FALSE) {
         return $referenced;
     }
     throw new Nette\MemberAccessException("Cannot read an undeclared column \"{$key}\".");
 }
Exemple #7
0
 public function &__get($key)
 {
     $this->accessColumn($key);
     if (array_key_exists($key, $this->data)) {
         return $this->data[$key];
     }
     try {
         list($table, $column) = $this->table->getDatabaseReflection()->getBelongsToReference($this->table->getName(), $key);
         $referenced = $this->getReference($table, $column);
         if ($referenced !== FALSE) {
             $this->accessColumn($key, FALSE);
             return $referenced;
         }
     } catch (MissingReferenceException $e) {
     }
     $this->removeAccessColumn($key);
     throw new Nette\MemberAccessException("Cannot read an undeclared column \"{$key}\".");
 }
Exemple #8
0
 /**
  * @param Selection $selection
  * @return HyperSelection
  */
 public function createSelection(Selection $selection)
 {
     $tableName = $selection->getName();
     $className = Helpers::substituteClassWildcard($this->selectionMapping, $tableName);
     $baseClass = HyperSelection::class;
     if (!class_exists($className) || !is_subclass_of($className, $baseClass)) {
         throw new InvalidStateException("HyperSelection class {$className} does not exist or does not extend {$baseClass}.");
     }
     $names = $this->container->findByType($className);
     if (count($names) > 1) {
         throw new InvalidStateException("Multiple services of type {$className} found: " . implode(', ', $names) . '.');
     } elseif (count($names) == 0) {
         $inst = $this->container->createInstance($className);
     } else {
         $name = array_shift($names);
         $inst = $this->container->createService($name);
     }
     /** @var HyperSelection $inst */
     $inst->setFactory($this);
     $inst->setSelection($selection);
     return $inst;
 }
Exemple #9
0
 /**
  * Creates a new row.
  * @param  mixed[]
  * @param  \Nette\Database\Table\Selection
  * @return \Nette\Database\Table\ActiveRow
  */
 public function createRow(array $data, \Nette\Database\Table\Selection $table)
 {
     $class = $this->getRowClass($table->getName());
     return new $class($data, $table);
 }