2011-12-15 40 views
0

我有以下代碼:Zend的路由器沒有確定PARAMS正確

$routes = array(
    'twitter_output' => new Zend_Controller_Router_Route(
     'twitter/:username\.:format', 
     array('controller' => 'twitter', 'action' => 'index') 
    ) 
); 

基本上我想它來搭配:http://site.com/twitter/edu2004eu.json(除不僅JSON,也許XML和其他人也是如此)。

但是,當我打印我的請求對象,它給了我:

[_params:protected] => Array ([username\.:format] => edu2004eu.json) 

,但它應該說:

[_params:protected] => Array ([username] => edu2004eu, [format] => json) 

我不知道我在做什麼錯在這裏。任何幫助,將不勝感激。

編輯:我試着用斜槓,而不是一個點(http://site.com/twitter/edu2004eu/json)相同,它似乎是工作,但我想點(要冷靜像所有的API)

回答

1

我不認爲標準路線類型設置爲使用點作爲分隔符。您可以改爲使用正則表達式路線:

$routes = array(
    'twitter_output' => new Zend_Controller_Router_Route_Regex(
     'twitter/([\w]+)\.([\w]+)', 
     array('controller' => 'twitter', 'action' => 'index'), 
     array(1 => 'username', 2 => 'format'), 
     'twitter/%s.%s' 
    ) 
); 
+0

太棒了!非常感謝你,完美工作。 – 2011-12-15 14:31:11