【发布时间】:2023-03-18 23:28:01
【问题描述】:
我有一个 CakePHP 1.3 shell,它需要使用 requestAction() 从单独的控制器生成 HTML。该调用的 URL 是使用以下命令生成的:
$url = Router::url(array('controller' => 'my_controller', 'action' => $action_str));
$data = array('url' => array('ext' => 'json'),
'return' => 'return',
'pass' => array('an_id_str' => $an_id));
$action_str、'an_id_str' 和 $an_id 是我的代码中唯一在调用之间发生变化的东西,并且 requestAction() 是这样调用的:
$this->requestAction($url, $data);
注意:由于 $action_str 可以在每次调用时更改,它会为每个单独的 requestAction() 调用生成新的 $url。
第一次调用 requestAction() 时效果很好。我第二次调用 requestAction() 时,它会抛出以下错误:
"Error: Missing Controller 'c:\...\cake\console'"
有什么想法可能导致路由器搞砸了,我该如何解决?
请注意 - 这实际上发生在几个使用相似功能的不同 shell 中。
【问题讨论】:
-
我有点困惑第一次和第二次调用该函数的方式有何不同。您是在完全相同的情况下调用它们还是调用依赖于某些逻辑?我的第一个想法是 URL 重写以某种方式把你弄乱了。你能提供更多关于你所打电话的详细信息吗?
-
唯一的区别是动作有时不同,提供给调用的数据也不同。 $this->requestAction($url, $data);其中 $url 是路由器提供的 URL, $data 是一个数组('url' => array('ext' => 'json'), 'return' => 'return', 'pass' => array('an_id_str ' => $an_id))
-
它在指定的 URL 处调用控制器/操作,生成用于导出的文件并将文件通过电子邮件发送给给定的用户。
-
以前没有人遇到过这个问题?
标签: cakephp cakephp-1.3