示例#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');
 }