Exemplo n.º 1
0
 /**
  * Add a foreign key.
  *
  * @param string $referenceTable   Referenced table name.
  * @param string $referenceColumns Columns of referenced table.
  * @param array  $options          Optional options.
  *
  * @return TableApi Self.
  */
 public function addForeignKey($referenceTable, $referenceColumns, array $options = [])
 {
     $schema = isset($options['schema']) ? new Schema($options['schema']) : null;
     $foreignKey = new ForeignKey($this, new Table($referenceTable, $schema));
     $foreignKey->setReferencedColumns($referenceColumns);
     if (isset($options['column'])) {
         $foreignKey->setColumns($options['column']);
     } else {
         $foreignKey->setColumns($referenceColumns);
     }
     if (isset($options['update'])) {
         $foreignKey->setUpdateAction($options['update']);
     }
     if (isset($options['delete'])) {
         $foreignKey->setDeleteAction($options['delete']);
     }
     $this->actions[] = function () use($foreignKey) {
         return $this->manipulation->create($foreignKey);
     };
     return $this;
 }