From 6a723bb515e8a53578f6c24f21fcbbaf1790c7ba Mon Sep 17 00:00:00 2001 From: ADmad Date: Thu, 18 Mar 2010 02:51:20 +0530 Subject: [PATCH] Type casting conditions array to avoid warning during array merge in Model::_deleteDependent(). Fixes #477 --- cake/libs/model/model.php | 2 +- cake/tests/cases/libs/model/model_delete.test.php | 11 +++++++++++ cake/tests/cases/libs/model/models.php | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cake/libs/model/model.php b/cake/libs/model/model.php index 3c900e3a6..d6d30e892 100644 --- a/cake/libs/model/model.php +++ b/cake/libs/model/model.php @@ -1847,7 +1847,7 @@ class Model extends Overloadable { $model =& $this->{$assoc}; $conditions = array($model->escapeField($data['foreignKey']) => $id); if ($data['conditions']) { - $conditions = array_merge($data['conditions'], $conditions); + $conditions = array_merge((array)$data['conditions'], $conditions); } $model->recursive = -1; diff --git a/cake/tests/cases/libs/model/model_delete.test.php b/cake/tests/cases/libs/model/model_delete.test.php index 6a3b75797..68088b42c 100644 --- a/cake/tests/cases/libs/model/model_delete.test.php +++ b/cake/tests/cases/libs/model/model_delete.test.php @@ -157,6 +157,7 @@ class ModelDeleteTest extends BaseModelTest { $this->loadFixtures('Cd','Book','OverallFavorite'); $Cd =& new Cd(); + $Book =& new Book(); $OverallFavorite =& new OverallFavorite(); $Cd->delete(1); @@ -174,6 +175,16 @@ class ModelDeleteTest extends BaseModelTest { $this->assertTrue(is_array($result)); $this->assertEqual($result, $expected); + + $Book->delete(1); + + $result = $OverallFavorite->find('all', array( + 'fields' => array('model_type', 'model_id', 'priority') + )); + $expected = array(); + + $this->assertTrue(is_array($result)); + $this->assertEqual($result, $expected); } /** diff --git a/cake/tests/cases/libs/model/models.php b/cake/tests/cases/libs/model/models.php index 6395db434..33b2a6720 100644 --- a/cake/tests/cases/libs/model/models.php +++ b/cake/tests/cases/libs/model/models.php @@ -2025,7 +2025,7 @@ class AssociationTest2 extends CakeTestModel { * @subpackage cake.tests.cases.libs.model */ class Callback extends CakeTestModel { - + } /** * CallbackPostTestModel class @@ -2445,7 +2445,7 @@ class Book extends CakeTestModel { * @var array * @access public */ - var $hasOne = array('OverallFavorite' => array('foreignKey' => 'model_id', 'dependent' => true, 'conditions' => array('model_type' => 'Book'))); + var $hasOne = array('OverallFavorite' => array('foreignKey' => 'model_id', 'dependent' => true, 'conditions' => 'OverallFavorite.model_type = \'Book\'')); } /**