Ejemplo n.º 1
0
 /**
  * Adds a new foreign key to this table.
  *
  * @param  ForeignKey|array $foreignKey The foreign key mapping
  * @return ForeignKey
  */
 public function addForeignKey($foreignKey)
 {
     if ($foreignKey instanceof ForeignKey) {
         $fk = $foreignKey;
         $fk->setTable($this);
         $name = $fk->getPhpName() ?: $fk->getName();
         if (isset($this->foreignKeysByName[$name])) {
             throw new EngineException(sprintf('Foreign key "%s" declared twice in table "%s". Please specify a different php name!', $name, $this->getName()));
         }
         $this->foreignKeys[] = $fk;
         $this->foreignKeysByName[$name] = $fk;
         if (!in_array($fk->getForeignTableName(), $this->foreignTableNames)) {
             $this->foreignTableNames[] = $fk->getForeignTableName();
         }
         return $fk;
     }
     $fk = new ForeignKey(isset($foreignKey['name']) ? $foreignKey['name'] : null);
     $fk->setTable($this);
     $fk->loadMapping($foreignKey);
     return $this->addForeignKey($fk);
 }
Ejemplo n.º 2
0
 /**
  * Adds a new foreign key to this table.
  *
  * @param ForeignKey|array
  * @return ForeignKey
  */
 public function addForeignKey($fkdata)
 {
     if ($fkdata instanceof ForeignKey) {
         $fk = $fkdata;
         $fk->setTable($this);
         $this->foreignKeys[] = $fk;
         if (!in_array($fk->getForeignTableName(), $this->foreignTableNames)) {
             $this->foreignTableNames[] = $fk->getForeignTableName();
         }
         return $fk;
     }
     $fk = new ForeignKey();
     $fk->setTable($this);
     $fk->loadMapping($fkdata);
     return $this->addForeignKey($fk);
 }