无法使用 cakePHP requestAction 加载完整视图

Posted

技术标签:

【中文标题】无法使用 cakePHP requestAction 加载完整视图【英文标题】:unable to load full view using cakePHP requestAction 【发布时间】:2012-01-28 06:29:20 【问题描述】:

我有一个问题。我正在尝试使用 cakephp 的 requestAction 方法来加载视图文件,但它似乎不起作用。在他们的页面上,我们可以阅读以下内容:

您可以使用 requestAction() 通过以下方式检索完全渲染的视图 在选项中传递'return':requestAction($url, 数组('return'));

我尝试这样做,但我仍然无法获取 .ctp 视图文件的内容。我有什么遗漏的吗?

顺便说一句,我是在另一个视图中执行此操作的。

谢谢。

【问题讨论】:

你能粘贴你正在运行的代码吗? 【参考方案1】:

这个函数不只是加载视图文件。它模拟访问 URL 的 Web 浏览器并返回相关控制器呈现的内容。默认行为是将结果发送到输出,如果您使用返回参数,您必须记住自己打印它:

$this->requestAction("MyController/myaction/param");

等价于

echo $this->requestAction("MyController/myaction/param", array("return"));

【讨论】:

乔尼,那行不通。它必须是: $this->requestAction("Mycontroller/myaction/param", array( 'return' ) );不是'返回'=> true。在后一种情况下,您将 return 作为数组键而不是值传递。 Joni - 我很想知道你从哪里学到的,这个例子直接来自书中: echo $this->requestAction(array('controller' => 'articles', 'action' = > '精选'), 数组('return')); - book.cakephp.org/1.3/en/view/991/requestAction 你是对的,应该是array("return")。我记错了,没查。【参考方案2】:

requestAction 调用一个动作,而不是关联的视图。如果你想调用关联的视图,你需要这样做:

echo $this->requestAction("Mycontroller/myaction/param", array( 'return' ) );

这会让 cake 知道渲染关联的视图文件。

【讨论】:

如果您的回答对您有帮助,请接受。这将增加您在未来获得帮助的机会。

以上是关于无法使用 cakePHP requestAction 加载完整视图的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 2.0 无法保存

无法使用 cakePHP requestAction 加载完整视图

无法在本地环境中使用 docker 连接到 cakephp 中的 mysql 数据库

CakePHP 2.2.4 无法使用 HAVING 子句和计算字段对结果进行分页 - Haversine 公式

cakephp 在 Ubuntu 上无法进行 url 重写

CakePHP 应用程序无法在 localhost 中启动