对于新应用程序,我想使用URI来确定应加载哪些内容。到目前为止没什么特别的......但是我怎么能让slug在其中有斜线并确保Zend Framework将它们视为1变量? ZF以块的形式拆分请求的URL,其中每个部分都是2个斜线之间的字符串。现在我想将1个变量中的所有部分都用到。
例如:
/de/my/page de > language my/page > 1 variable
有什么想法吗?
答案 0 :(得分:1)
来自Hari K的建议是最好的选择,但是如果你真的想保留斜线,你可以使用Zend_Controller_Router_Route_Regex来捕捉你的参数,你只需要找到一个好的正则表达式,一个简单的例子:
$routetotry = new Zend_Controller_Router_Route_Regex('([^/]+)/(.*)',
array(1 => 'de', 'controller' => 'someController', 'action' => 'someAction'),
array(1 => 'lang',2=>'my_variable_with_slash'),
'%s/%s'
);
$router->addRoute('routetotry', $routetotry);
答案 1 :(得分:1)
自定义路由器。最灵活的解决方案,但不是最简单的解决方案:(
答案 2 :(得分:0)
用您选择的其他值替换slug中的斜杠。
例如连字符( - )或下划线(_)。