CakePHP RequestHandler:setContent / renderAs / respondAs ..什么?

时间:2009-09-18 00:07:10

标签: cakephp content-type

有人可以解释这些功能:

 RequestHandlerComponent::renderAs()
 RequestHandlerComponent::respondAs()
 RequestHandlerComponent::setContent()

拥有所有这三个(无论如何都是公共方法)感觉有点多余。如果我想用PDF文件回复请求,这是否意味着我必须调用所有三个函数?我应该如何在我的控制器中使用它们?

1 个答案:

答案 0 :(得分:8)

他们都不同。来自API Docs

  

<强> renderAs
  设置$ type。

定义的内容类型的布局和模板路径

即。或多或少是$this->layout = '...'$this->render(...)的快捷方式。

  

<强> respondAs
  根据类型映射索引名称设置响应头。如果DEBUG大于2,则不设置标题。

输出header(...)

  

<强> setContent
  添加/设置给定名称的Content-type(s)。此方法允许将内容类型映射到友好别名(或扩展),这允许RequestHandler在启动方法中自动响应该类型的请求。

实际上对输出没有任何作用,只允许您添加默认情况下未定义的新类型。

要输出PDF(假设您已将其作为文件),您实际应该使用Media View