diff --git a/src/Xethron/MigrationsGenerator/Generators/ForeignKeyGenerator.php b/src/Xethron/MigrationsGenerator/Generators/ForeignKeyGenerator.php index d0d6237..3960994 100644 --- a/src/Xethron/MigrationsGenerator/Generators/ForeignKeyGenerator.php +++ b/src/Xethron/MigrationsGenerator/Generators/ForeignKeyGenerator.php @@ -21,6 +21,8 @@ public function generate( $table, $schema ) 'field' => $foreignKey->getLocalColumns()[0], 'references' => $foreignKey->getForeignColumns()[0], 'on' => $foreignKey->getForeignTableName(), + 'onUpdate' => $foreignKey->hasOption('onUpdate') ? $foreignKey->getOption('onUpdate') : 'RESTRICT', + 'onDelete' => $foreignKey->hasOption('onDelete') ? $foreignKey->getOption('onDelete') : 'RESTRICT', ]; } return $fields; diff --git a/src/Xethron/MigrationsGenerator/Syntax/AddForeignKeysToTable.php b/src/Xethron/MigrationsGenerator/Syntax/AddForeignKeysToTable.php index a257a88..b88d559 100644 --- a/src/Xethron/MigrationsGenerator/Syntax/AddForeignKeysToTable.php +++ b/src/Xethron/MigrationsGenerator/Syntax/AddForeignKeysToTable.php @@ -20,6 +20,12 @@ protected function getItem(array $foreignKey) $foreignKey['references'], $foreignKey['on'] ); + if ($foreignKey['onUpdate']) { + $output .= sprintf("->onUpdate('%s')", $foreignKey['onUpdate']); + } + if ($foreignKey['onDelete']) { + $output .= sprintf("->onDelete('%s')", $foreignKey['onDelete']); + } if (isset($foreignKey['decorators'])) { $output .= $this->addDecorators($foreignKey['decorators']); }