getStructure() public method

public getStructure ( ) : Nette\Database\IStructure
return Nette\Database\IStructure
コード例 #1
0
ファイル: Selection.php プロジェクト: jave007/test
 /**
  * @return string
  */
 public function getPrimarySequence()
 {
     if ($this->primarySequence === FALSE) {
         $this->primarySequence = $this->context->getStructure()->getPrimaryKeySequence($this->name);
     }
     return $this->primarySequence;
 }
コード例 #2
0
ファイル: SqlBuilder.php プロジェクト: ricco24/database
 public function __construct($tableName, Context $context)
 {
     $this->tableName = $tableName;
     $this->driver = $context->getConnection()->getSupplementalDriver();
     $this->conventions = $context->getConventions();
     $this->structure = $context->getStructure();
     $this->delimitedTable = implode('.', array_map([$this->driver, 'delimite'], explode('.', $tableName)));
 }
コード例 #3
0
ファイル: NetteDbTableSource.php プロジェクト: mesour/sources
 protected function initializeDataStructure($tableName, $primaryKey)
 {
     $dataStructure = new Structures\DataStructure($tableName, $primaryKey);
     $this->setDataStructure($dataStructure);
     $structure = $this->context->getStructure();
     $columns = $structure->getColumns($this->getTableName());
     Helpers::setStructureFromColumns($dataStructure, $this->determineFromColumns($columns));
     foreach ($structure->getBelongsToReference($tableName) as $key => $table) {
         $dataStructure->getOrCreateTableStructure($table, $structure->getPrimaryKey($table));
         $targetReference = $structure->getBelongsToReference($table);
         $hasOneToOne = array_search($tableName, $targetReference);
         if ($hasOneToOne) {
             $field = $dataStructure->addOneToOne($table, $table, $key);
         } else {
             $field = $dataStructure->addManyToOne($table, $table, $key);
         }
         $column = $this->findColumn($columns, $key);
         $field->setNullable($column['nullable']);
     }
     foreach ($structure->getHasManyReference($tableName) as $table => $keys) {
         $dataStructure->getOrCreateTableStructure($table, $structure->getPrimaryKey($table));
         $sourceReference = $structure->getBelongsToReference($tableName);
         if (in_array($table, $sourceReference)) {
             continue;
         }
         $targetReference = $structure->getBelongsToReference($table);
         if (count($targetReference) > 1) {
             $match = null;
             foreach ($keys as $key => $targetTable) {
                 $match = array_search($tableName, $targetReference);
                 if ($match) {
                     unset($targetReference[$match]);
                     break;
                 }
             }
             if ($match) {
                 $arrayKeys = array_keys($targetReference);
                 $selfColumn = reset($arrayKeys);
                 $currentValue = reset($targetReference);
                 $dataStructure->getOrCreateTableStructure($currentValue, $structure->getPrimaryKey($currentValue));
                 $dataStructure->addManyToMany($currentValue, $currentValue, $selfColumn, $table, $match);
                 continue;
             }
         }
         $match = null;
         foreach ($keys as $key => $targetTable) {
             $match = array_search($tableName, $targetReference);
             if ($match) {
                 unset($targetReference[$match]);
                 break;
             }
         }
         if ($match) {
             $dataStructure->addOneToMany($table, $table, $match);
         }
     }
 }
コード例 #4
0
ファイル: NetteMapper.php プロジェクト: Zarganwar/orm
 public function __construct(Context $databaseContext)
 {
     $this->databaseContext = $databaseContext;
     $this->databaseStructure = $databaseContext->getStructure();
     $this->databaseConventions = $databaseContext->getConventions();
 }