Browse Source

Make sure default values in schema columns are always non-empty (especially booleans).

Franz Liedke 12 years ago
parent
commit
61364c553d

+ 15 - 0
laravel/database/schema/grammars/grammar.php

@@ -96,4 +96,19 @@ abstract class Grammar extends \Laravel\Database\Grammar {
 		return $this->{'type_'.$column->type}($column);
 	}
 
+	/**
+	 * Format a value so that it can be used in SQL DEFAULT clauses.
+	 * @param  mixed   $value
+	 * @return string
+	 */
+	protected function default_value($value)
+	{
+		if (is_bool($value))
+		{
+			return intval($value);
+		}
+
+		return strval($value);
+	}
+
 }

+ 1 - 1
laravel/database/schema/grammars/mysql.php

@@ -128,7 +128,7 @@ class MySQL extends Grammar {
 	{
 		if ( ! is_null($column->default))
 		{
-			return " DEFAULT '".$column->default."'";
+			return " DEFAULT '".$this->default_value($column->default)."'";
 		}
 	}
 

+ 1 - 1
laravel/database/schema/grammars/postgres.php

@@ -101,7 +101,7 @@ class Postgres extends Grammar {
 	{
 		if ( ! is_null($column->default))
 		{
-			return " DEFAULT '".$column->default."'";
+			return " DEFAULT '".$this->default_value($column->default)."'";
 		}
 	}
 

+ 1 - 1
laravel/database/schema/grammars/sqlite.php

@@ -127,7 +127,7 @@ class SQLite extends Grammar {
 	{
 		if ( ! is_null($column->default))
 		{
-			return ' DEFAULT '.$this->wrap($column->default);
+			return ' DEFAULT '.$this->wrap($this->default_value($column->default));
 		}
 	}
 

+ 1 - 1
laravel/database/schema/grammars/sqlserver.php

@@ -108,7 +108,7 @@ class SQLServer extends Grammar {
 	{
 		if ( ! is_null($column->default))
 		{
-			return " DEFAULT '".$column->default."'";
+			return " DEFAULT '".$this->default_value($column->default)."'";
 		}
 	}