diff --git a/cake/libs/model/datasources/dbo_source.php b/cake/libs/model/datasources/dbo_source.php index 4394b5a85..2112afaac 100644 --- a/cake/libs/model/datasources/dbo_source.php +++ b/cake/libs/model/datasources/dbo_source.php @@ -211,15 +211,15 @@ class DboSource extends DataSource { if (isset($params[2 + $off])) { $order = $params[2 + $off]; } - - if(!isset($params[0])) { + + if(!array_key_exists(0, $params)) { return false; } $c = 0; $query = array(); foreach ($field as $f) { - if (!is_array($params[$c])) { + if (!is_array($params[$c]) && !empty($params[$c])) { $query[$args[2]->name . '.' . $f] = '= ' . $params[$c]; } else { $query[$args[2]->name . '.' . $f] = $params[$c]; diff --git a/cake/tests/cases/libs/model/datasources/dbo_source.test.php b/cake/tests/cases/libs/model/datasources/dbo_source.test.php index cca4443e1..88b220569 100644 --- a/cake/tests/cases/libs/model/datasources/dbo_source.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo_source.test.php @@ -1381,6 +1381,11 @@ class DboSourceTest extends UnitTestCase { $result = $this->db->query('findByFieldName', array('= a'), $this->model); $expected = array('TestModel.field_name' => '= = a'); $this->assertEqual($result, $expected); + + $result = $this->db->query('findByFieldName', array(), $this->model); + $expected = false; + $this->assertEqual($result, $expected); + } function testOrderParsing() {