diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index dafe6b6d8a5..b8659907f12 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -399,7 +399,7 @@ function __mergeVars() { $this->{$var} = Set::merge($app, $normal); } } else { - $this->{$var} = Set::merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); + $this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); } } } @@ -423,7 +423,7 @@ function __mergeVars() { $this->{$var} = Set::merge($app, $normal); } } else { - $this->{$var} = Set::merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); + $this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); } } } diff --git a/cake/tests/cases/libs/controller/controller.test.php b/cake/tests/cases/libs/controller/controller.test.php index 6d3d5926360..b0ea499bbb7 100644 --- a/cake/tests/cases/libs/controller/controller.test.php +++ b/cake/tests/cases/libs/controller/controller.test.php @@ -937,6 +937,10 @@ function testMergeVars() { $this->assertEqual(count(array_diff($TestController->uses, $uses)), 0); $this->assertEqual(count(array_diff_assoc(Set::normalize($TestController->components), Set::normalize($components))), 0); + $expected = array('ControllerComment', 'ControllerAlias', 'ControllerPost'); + $this->assertEqual($expected, $TestController->uses, '$uses was merged incorrectly, AppController models should be last.'); + + $TestController =& new AnotherTestController(); $TestController->constructClasses();