diff --git a/cake/libs/model/model.php b/cake/libs/model/model.php index 396da7d4eec..a375dc2eb62 100644 --- a/cake/libs/model/model.php +++ b/cake/libs/model/model.php @@ -331,9 +331,9 @@ class Model extends Object { public $__backAssociation = array(); public $__backInnerAssociation = array(); - + public $__backOriginalAssociation = array(); - + public $__backContainableAssociation = array(); /** @@ -1067,7 +1067,7 @@ public function hasField($name, $checkVirtual = false) { } /** - * Check that a method is callable on a model. This will check both the model's own methods, its + * Check that a method is callable on a model. This will check both the model's own methods, its * inherited methods and methods that could be callable through behaviors. * * @param string $method The method to be called. @@ -2156,7 +2156,7 @@ function find($conditions = null, $fields = array(), $order = null, $recursive = if ($query['callbacks'] === true || $query['callbacks'] === 'before') { $return = $this->Behaviors->trigger( - 'beforeFind', + 'beforeFind', array(&$this, $query), array('break' => true, 'breakOn' => array(false, null), 'modParams' => 1) ); @@ -2321,7 +2321,6 @@ function _findList($state, $query, $results = array()) { */ protected function _findNeighbors($state, $query, $results = array()) { if ($state == 'before') { - $query = array_merge(array('recursive' => 0), $query); extract($query); $conditions = (array)$conditions; if (isset($field) && isset($value)) { diff --git a/cake/tests/cases/libs/model/model_read.test.php b/cake/tests/cases/libs/model/model_read.test.php index 29ef9e929d3..8788b04afd9 100755 --- a/cake/tests/cases/libs/model/model_read.test.php +++ b/cake/tests/cases/libs/model/model_read.test.php @@ -3504,11 +3504,14 @@ public function testFindNeighbors() { $expected = array( 'prev' => null, 'next' => array( - 'Article' => array('id' => 2) + 'Article' => array('id' => 2), + 'Comment' => array(), + 'Tag' => array() )); $this->assertEqual($result, $expected); $TestModel->id = 2; + $TestModel->recursive = 0; $result = $TestModel->find('neighbors', array( 'fields' => array('id') )); @@ -3525,12 +3528,14 @@ public function testFindNeighbors() { $this->assertEqual($result, $expected); $TestModel->id = 3; + $TestModel->recursive = 1; $result = $TestModel->find('neighbors', array('fields' => array('id'))); $expected = array( 'prev' => array( - 'Article' => array( - 'id' => 2 - )), + 'Article' => array('id' => 2), + 'Comment' => array(), + 'Tag' => array() + ), 'next' => null ); $this->assertEqual($result, $expected); @@ -4793,7 +4798,7 @@ function bindWithCustomPrimaryKey() { } /** - * test that calling unbindModel() with reset == true multiple times + * test that calling unbindModel() with reset == true multiple times * leaves associations in the correct state. * * @return void