【问题标题】:Cakephp 2.4 Trying to use CakeResponse in ComponentCakephp 2.4 尝试在组件中使用 CakeResponse
【发布时间】:2014-06-17 13:17:57
【问题描述】:

我正在尝试使用 CakeResponse 从我的一个组件(应用程序/控制器/组件)中的字符串创建和下载文件,但出现此错误

Call to a member function body() on a non-object

下面的代码

$this->response->body("toto");
$this->response->download("titi.txt");
return $this->response;

如何从组件访问 CakeResponse?

感谢您的帮助,对不起我的英语。

【问题讨论】:

  • download() - 正如明确记录的那样 - 只是设置标题。调度程序周期的末尾将发送它们,这样就可以将响应呈现为可供下载。
  • 您的编辑应该完全是另一个问题(并且只有在通过搜索和调试问题后才发布)。如果您在前一个问题中添加“下载不起作用”问题,则必须编辑和/或删除马克的答案,因为它必须解决与原始问题无关的另一个问题。

标签: cakephp cakephp-2.4


【解决方案1】:

这个错误不是告诉你出了什么问题吗? 它清楚地表明该对象无法通过这种方式获得。

通常,您会尝试通过组件回调中的控制器对象来访问它:

public function initialize(Controller $controller) {
    $controller->response->body(...);
    ...
}

如果您在其他方法中需要它,您可以将其传递给 initialize() 中的本地属性并在以后重用它:

$this->Controller = $controller;

【讨论】:

  • 是的,我理解错误,我的问题更像是“如何在组件内的 CakeResponse 访问”,抱歉。现在错误消失了,多亏了你,但什么也没发生。我会更新我的问题。
猜你喜欢
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 2014-11-04
  • 1970-01-01
相关资源
最近更新 更多