我想使用这样的 URL:
site.com/car-list/param1/value1/param2/value2
“汽车”是可变的,可以是任意的。我像这样解决了“site.com/car-list”部分:
$categoryRoute = new Zend_Controller_Router_Route_Regex(
'(\b.+\-list\b)',
array(
'module' => 'default',
'controller' => 'search',
'action' => 'index'
),
array(
1 => 'productType'
)
);
当我想要“productType”参数时,我可以获得“car-list”。但是我无法在 Controller 中使用 $this->_getParam() 获得 url 的其余部分。
我怎样才能做到这一点?谢谢。
最佳答案
好吧,我不知道如何使用 Router_Route_Regex 来实现,但是使用 Router_Route 会更容易(我想,我将“-”替换为“/”)
$categoryRoute = new Zend_Controller_Router_Route
':car/list/*',
array(
'module' => 'default',
'controller' => 'search',
'action' => 'index'
)
);
由于字符串末尾的“/*”,魔术发生了。 :car 变量可以通过 $request->getParam('car');
关于regex - Zend Route Regex 和可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541822/