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)); } }
public final function dropReferences() { $current = Connection::getTableReferences($this->table->getName()); $new = $this->table->getReferences(); $this->drop($current, $new, $this->table->getName(), 'FOREIGN KEY'); }