我有以下代码:
$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一样酷)
答案 0 :(得分: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'
)
);