无法使用 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 requestAction 加载完整视图
无法在本地环境中使用 docker 连接到 cakephp 中的 mysql 数据库