有人可以解释这些功能:
RequestHandlerComponent::renderAs()
RequestHandlerComponent::respondAs()
RequestHandlerComponent::setContent()
拥有所有这三个(无论如何都是公共方法)感觉有点多余。如果我想用PDF文件回复请求,这是否意味着我必须调用所有三个函数?我应该如何在我的控制器中使用它们?
答案 0 :(得分:8)
他们都不同。来自API Docs:
<强> renderAs 强>
定义的内容类型的布局和模板路径
设置$ type。
即。或多或少是$this->layout = '...'
和$this->render(...)
的快捷方式。
<强> respondAs 强>
根据类型映射索引名称设置响应头。如果DEBUG大于2,则不设置标题。
输出header(...)
。
<强> setContent 强>
添加/设置给定名称的Content-type(s)。此方法允许将内容类型映射到友好别名(或扩展),这允许RequestHandler在启动方法中自动响应该类型的请求。
实际上对输出没有任何作用,只允许您添加默认情况下未定义的新类型。
要输出PDF(假设您已将其作为文件),您实际应该使用Media View。