Browse Source

Fix null default values not being returned by defaultValues()

Refs #5454
Mark Story 11 years ago
parent
commit
28cae9d06e
2 changed files with 4 additions and 2 deletions
  1. 1 1
      src/Database/Schema/Table.php
  2. 3 1
      tests/TestCase/Database/Schema/TableTest.php

+ 1 - 1
src/Database/Schema/Table.php

@@ -342,7 +342,7 @@ class Table {
 	public function defaultValues() {
 		$defaults = [];
 		foreach ($this->_columns as $name => $data) {
-			if (isset($data['default'])) {
+			if (array_key_exists('default', $data)) {
 				$defaults[$name] = $data['default'];
 			}
 		}

+ 3 - 1
tests/TestCase/Database/Schema/TableTest.php

@@ -164,11 +164,13 @@ class TableTest extends TestCase {
 			'default' => 'A title'
 		])->addColumn('body', [
 			'type' => 'text',
+			'default' => null,
 		]);
 		$result = $table->defaultValues();
 		$expected = [
 			'id' => 0,
-			'title' => 'A title'
+			'title' => 'A title',
+			'body' => null
 		];
 		$this->assertEquals($expected, $result);
 	}