From f3df0137538d5af16fbdcba1f94830959e487b5b Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Sun, 4 Mar 2012 14:23:59 -0600 Subject: [PATCH] Added support for decimal data type in schema. Signed-off-by: Taylor Otwell --- laravel/database/schema/grammars/mysql.php | 11 +++++++++++ laravel/database/schema/grammars/postgres.php | 11 +++++++++++ laravel/database/schema/grammars/sqlite.php | 11 +++++++++++ laravel/database/schema/grammars/sqlserver.php | 11 +++++++++++ laravel/database/schema/table.php | 13 +++++++++++++ 5 files changed, 57 insertions(+) diff --git a/laravel/database/schema/grammars/mysql.php b/laravel/database/schema/grammars/mysql.php index 5d783cee..a41991d3 100644 --- a/laravel/database/schema/grammars/mysql.php +++ b/laravel/database/schema/grammars/mysql.php @@ -337,6 +337,17 @@ class MySQL extends Grammar { return 'FLOAT'; } + /** + * Generate the data-type definintion for a decimal. + * + * @param Fluent $column + * @return string + */ + protected function type_decimal(Fluent $column) + { + return "DECIMAL({$column->precision}, {$column->scale})"; + } + /** * Generate the data-type definition for a boolean. * diff --git a/laravel/database/schema/grammars/postgres.php b/laravel/database/schema/grammars/postgres.php index 9a32edff..acce7f7b 100644 --- a/laravel/database/schema/grammars/postgres.php +++ b/laravel/database/schema/grammars/postgres.php @@ -338,6 +338,17 @@ class Postgres extends Grammar { return 'REAL'; } + /** + * Generate the data-type definintion for a decimal. + * + * @param Fluent $column + * @return string + */ + protected function type_decimal(Fluent $column) + { + return "DECIMAL({$column->precision}, {$column->scale})"; + } + /** * Generate the data-type definition for a boolean. * diff --git a/laravel/database/schema/grammars/sqlite.php b/laravel/database/schema/grammars/sqlite.php index 9fcbce2a..c6d209e4 100644 --- a/laravel/database/schema/grammars/sqlite.php +++ b/laravel/database/schema/grammars/sqlite.php @@ -282,6 +282,17 @@ class SQLite extends Grammar { return 'FLOAT'; } + /** + * Generate the data-type definintion for a decimal. + * + * @param Fluent $column + * @return string + */ + protected function type_decimal(Fluent $column) + { + return 'FLOAT'; + } + /** * Generate the data-type definition for a boolean. * diff --git a/laravel/database/schema/grammars/sqlserver.php b/laravel/database/schema/grammars/sqlserver.php index 3972edd5..dea4729e 100644 --- a/laravel/database/schema/grammars/sqlserver.php +++ b/laravel/database/schema/grammars/sqlserver.php @@ -356,6 +356,17 @@ class SQLServer extends Grammar { return 'FLOAT'; } + /** + * Generate the data-type definintion for a decimal. + * + * @param Fluent $column + * @return string + */ + protected function type_decimal(Fluent $column) + { + return "DECIMAL({$column->precision}, {$column->scale})"; + } + /** * Generate the data-type definition for a boolean. * diff --git a/laravel/database/schema/table.php b/laravel/database/schema/table.php index b40a2819..2665e4d7 100644 --- a/laravel/database/schema/table.php +++ b/laravel/database/schema/table.php @@ -276,6 +276,19 @@ class Table { return $this->column(__FUNCTION__, compact('name')); } + /** + * Add a decimal column to the table. + * + * @param string $name + * @param int $precision + * @param int $scale + * @return Fluent + */ + public function decimal($name, $precision, $scale) + { + return $this->column(__FUNCTION__, compact('name', 'precision', 'scale')); + } + /** * Add a boolean column to the table. *