From 77a8e3b9e588d604c43110405ca383d80a034d8c Mon Sep 17 00:00:00 2001 From: Tom Rochette Date: Tue, 27 May 2014 11:25:11 -0400 Subject: [PATCH] Added support for foreign keys with onUpdate and onDelete rules (will always set both properties in generated migrations). --- .../MigrationsGenerator/Generators/ForeignKeyGenerator.php | 2 ++ .../MigrationsGenerator/Syntax/AddForeignKeysToTable.php | 6 ++++++ 2 files changed, 8 insertions(+) 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']); }