Exemple #1
0
 /**
  * Add a foreign key to a database table.
  *
  * In $options you can specify on_delete|on_delete = cascade|no_action ..,
  * on_update, constraint = constraint name.
  *
  * @param string|array $columns Columns
  * @param string|Table $referencedTable   Referenced Table
  * @param string|array $referencedColumns Referenced Columns
  * @param array $options Options
  * @return Table
  */
 public function addForeignKey($columns, $referencedTable, $referencedColumns = array('id'), $options = array())
 {
     if (is_string($referencedColumns)) {
         $referencedColumns = array($referencedColumns);
         // str to array
     }
     $fk = new ForeignKey();
     if ($referencedTable instanceof Table) {
         $fk->setReferencedTable($referencedTable);
     } else {
         $fk->setReferencedTable(new Table($referencedTable, array(), $this->adapter));
     }
     $fk->setColumns($columns)->setReferencedColumns($referencedColumns)->setOptions($options);
     $this->foreignKeys[] = $fk;
     return $this;
 }
 /**
  * Sets the foreign key columns.
  *
  * @param array $columns
  *
  * @return $this
  */
 public function setColumns(array $columns)
 {
     $this->foreign->setColumns($columns);
     return $this;
 }