mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Ensure that afterFind is called when using 'joins' with 'recursive' = -1
This commit is contained in:
parent
b74774bb0c
commit
31204832c2
2 changed files with 54 additions and 3 deletions
|
@ -1143,10 +1143,10 @@ class DboSource extends DataSource {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($queryData['callbacks'] === true || $queryData['callbacks'] === 'after') {
|
||||
$this->_filterResults($resultSet, $Model, $filtered);
|
||||
}
|
||||
if ($queryData['callbacks'] === true || $queryData['callbacks'] === 'after') {
|
||||
$this->_filterResults($resultSet, $Model, $filtered);
|
||||
}
|
||||
|
||||
if ($recursive !== null) {
|
||||
|
|
|
@ -1509,6 +1509,57 @@ class DboSourceTest extends CakeTestCase {
|
|||
$this->assertCount(2, $result['Article']['Comment']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that afterFind is called correctly for 'joins'
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testJoinsAfterFind() {
|
||||
$this->loadFixtures('Article', 'User');
|
||||
|
||||
$User = new User();
|
||||
$User->bindModel(array('hasOne' => array('Article')));
|
||||
|
||||
$Article = $this->getMock('Article', array('afterFind'), array(), '', true);
|
||||
$Article->expects($this->once())
|
||||
->method('afterFind')
|
||||
->with(
|
||||
array(
|
||||
0 => array(
|
||||
'Article' => array(
|
||||
'id' => '1',
|
||||
'user_id' => '1',
|
||||
'title' => 'First Article',
|
||||
'body' => 'First Article Body',
|
||||
'published' => 'Y',
|
||||
'created' => '2007-03-18 10:39:23',
|
||||
'updated' => '2007-03-18 10:41:31'
|
||||
)
|
||||
)
|
||||
),
|
||||
$this->isFalse()
|
||||
)
|
||||
->will($this->returnArgument(0));
|
||||
|
||||
$User->Article = $Article;
|
||||
$User->find('first', array(
|
||||
'fields' => '*',
|
||||
'conditions' => array('User.id' => 1),
|
||||
'recursive' => -1,
|
||||
'joins' => array(
|
||||
array(
|
||||
'table' => 'articles',
|
||||
'alias' => 'Article',
|
||||
'type' => 'LEFT',
|
||||
'conditions' => array(
|
||||
'Article.user_id = User.id'
|
||||
),
|
||||
)
|
||||
),
|
||||
'order' => array('Article.id')
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that afterFind is called correctly for 'hasOne' association.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue