diff --git a/data/source/Database.php b/data/source/Database.php index b144633f39..5b0f22aa7c 100644 --- a/data/source/Database.php +++ b/data/source/Database.php @@ -1243,7 +1243,7 @@ protected function _sort($field, $context, $clause = 'ORDER BY', $direction = tr $field = array($field => $direction); } - if (!is_array($field)) { + if (!is_array($field) || empty($field)) { return; } $result = array(); diff --git a/tests/cases/data/source/DatabaseTest.php b/tests/cases/data/source/DatabaseTest.php index 106ee9665b..6bea4098ce 100644 --- a/tests/cases/data/source/DatabaseTest.php +++ b/tests/cases/data/source/DatabaseTest.php @@ -607,6 +607,10 @@ public function testOrder() { $result = $this->_db->order(array('author_id', "title" => "DESC"), $query); $expected = 'ORDER BY {MockDatabasePost}.{author_id} ASC, {MockDatabasePost}.{title} DESC'; $this->assertEqual($expected, $result); + + $result = $this->_db->order(array(), $query); + $expected = ''; + $this->assertEqual($expected, $result); } public function testOrderOnRelated() {