在之前的cakephp-1.2和cakephp-1.3中,我使用了以下代码,它运行正常:
$b = $this->requestAction(
array('controller' => 'blocks', 'action' => 'view'),
array('sParams' => $this->params, 'position' => $position, 'return')
);
现在我使用cakePHP 2.4.1,这会产生以下错误:
> Warning (2): rawurlencode() expects parameter 1 to be string, object
> given [CORE\Cake\Routing\Router.php, line 1001]
后面缺少控制器错误:
> Missing Controller
>
> Error: Controller could not be found.
>
> Error: Create the class Controller below in file:
> app\Controller\Controller.php
>
> <?php class Controller extends AppController {
>
> }
有什么我不知道从cakePHP 1.3更改为CakePHP 2.4.1会阻止此requestAction像往常一样工作吗?
修改:在requestAction api documentation中,有以下通知:
在引擎盖下,此方法使用Router :: reverse()来转换$ url 参数转换为字符串URL。 您应该使用的URL格式 兼容Router :: reverse()
但是,在Router::reverse方法文档中,我无法找到有关其URL兼容格式的任何提示。
顺便说一句,使用默认布局主题,结束了这个问题,他们没有使用requestAction(),但我需要使用主题视图及其布局。