如何在Zend中设置和获取请求格式?

时间:2012-07-24 01:22:24

标签: php zend-framework

我想知道是否有办法从这个网址获取“json”部分:“ / post / index。 json ”,或者,如果不存在, html“默认情况下,就像在Rails中执行”request.format“一样。

我也想知道这是否可以作为一个参数设置在路线上。这样做的:

resources.router.routes.default.route = /:controller/:action.:format
在ini文件上的

将无法正常工作,似乎将params分开的唯一方法是添加/.

Zend是否可以实现这一点,还是我必须自己编写代码?

1 个答案:

答案 0 :(得分:1)

我没有使用Rails或Ruby的经验,但我认为你必须自己在ZF编写代码。您可以在控制器内执行此操作:

$format = substr($this->getRequest()->getRequestUri(), -4);
if ($format === 'json') {
    // do something
} else {
    // do something else
}

但这取决于当然包含在URI中的请求的格式。

您是否将格式放入URI中以便响应AJAX请求?我认为编写HTTP规范的人想要的方法是读取客户端给出的请求头,即Accept头。我还使用ZF的$request->isXmlHttpRequest()来检测AJAX请求。