Пример #1
0
 private static function generateReferences(Template $template, Table $table)
 {
     /** @var Reference $reference */
     $references = [];
     foreach ($table->getReferences() as $reference) {
         $r = "new Reference('" . $reference->getName() . "', " . "['" . implode("', '", $reference->getColumns()) . "'], '" . $reference->getReferencedTable() . "', " . "['" . implode("', '", $reference->getReferencedColumns()) . "']";
         if ($reference->getUpdateRule()) {
             $r .= ", '" . $reference->getUpdateRule() . "'";
         }
         if ($reference->getDeleteRule()) {
             $r .= ", '" . $reference->getDeleteRule() . "'";
         }
         $r .= ")";
         $references[] = $r;
     }
     if (!empty($references)) {
         $template->set('references', implode(",\n" . self::LINE_PREFIX, $references));
     }
 }
Пример #2
0
 public final function dropReferences()
 {
     $current = Connection::getTableReferences($this->table->getName());
     $new = $this->table->getReferences();
     $this->drop($current, $new, $this->table->getName(), 'FOREIGN KEY');
 }
Пример #3
0
 public static function fillTableColumns(Table $table)
 {
     $res = self::query("SHOW FULL COLUMNS FROM `" . $table->getName() . "`");
     if ($res) {
         $previous = false;
         while ($c = $res->fetch_array()) {
             if (!$previous) {
                 $c['first'] = true;
             } else {
                 $c['after'] = $previous;
             }
             $table->addColumn(new Column($c['Field'], $c));
             $previous = $c['Field'];
         }
     }
 }