2012-03-18 35 views
2

自动响应我有一个锂应用中设置了这种方式,因此,当PHP锂(LI3)如何设置与JSON

return($data) 

使用它或者可以在锂view.html.php使用作为

echo $data 

,或者请求头 “接受” 等于 “JSON/javacript” 它会返回类似

{ 
data: { a:'b' } 
} 

自动。

不幸的是在新的应用程序,我作为一个测试应用程序,流程上做出了不发生(只有HTML总是返回)。

做了一些研究,好像它应该可以自动完成之后,如果我取消

require __DIR__ . '/bootstrap/media.php'; 

内bootstrap.php中,但没有工作,我仍然有HTML返回。我下载了最新版本的锂电池(我下载的可能是1到2个月前)

任何人都知道如果使用JSON自动响应需要设置或不是?

回答

2

http://dev.lithify.me/lithium/tickets/view/353

取,然后将其从锂文档

采取要启用自动内容类型协商(即确定基于HTTP的值Accept首部的响应的内容类型),将'negotiating'标志设置为true。否则,响应将仅基于请求对象的类型参数(默认为“HTML”,如果没有类型出现在请求参数)

http://li3.me/docs/lithium/action/Controller :: $ _渲染

如果您需要更多的帮助如何实施发表评论。

+0

的答案是正确的谢谢!小增加:为了使它工作,必须把$ this - > _ render ['negotiate'] = true;代码在控制器的_init函数内部,如果放在控制器的一个动作中它不起作用。代码的完整版本看起来像\t保护函数_init(){ \t \t //协商选项告诉li3提供正确的内容类型 \t $ this - > _ render ['negotiate'] = true; \t \t父:: _的init(); \t} – Evgenius 2012-03-18 07:39:31

+0

其奇怪。我返回JSON,我做了网络配置它以这种方式。但我不知道具体的设置,我只试过一次,它的工作。我启用media.php – Tomen 2012-03-21 14:49:28

+0

@Tomen我认为它的方式对JSON的请求即将通过。显式控制器中或内容类型或URL中。 – 2012-03-21 17:24:53

2

也可以到类型设置被$ this->请求 - >接受()调用渲染时()。

return $this->render(array('type' => $this->request->accepts()));