2012-07-24 49 views
0

我不知道是否有辦法從這個url獲得「json」部分:「/post/index。json」,或者,如果不存在,默認情況下爲「html」,就像做「請求」一樣。格式「在Rails中。如何在Zend中設置和獲取請求格式?

我也想知道這是否可以作爲參數在路線上設置。這樣做的:

resources.router.routes.default.route = /:controller/:action.:format 

的ini文件將無法正常工作,好像分開params爲通過添加/的唯一途徑。

這可能與Zend或我必須自己編碼嗎?

回答

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請求。

+0

嗯,我習慣了Rails,你可以根據格式進行響應:index.xml會響應xml,index.json會響應一個json字符串(基本上通過切換格式來做到這一點)。默認情況下,格式爲html,因此您使用html進行響應。我想我將不得不添加一些代碼來自動檢查格式並將其添加到Request對象。 – Parziphal 2012-07-24 02:00:51

相關問題