/** * 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; }