我正在使用Zend Framework 1.12并且有这条路线:
$router->addRoute('item_start',
new Zend_Controller_Router_Route_Regex(
'(foo|bar|baz)',
array(
'module' => 'default',
'controller' => 'item',
'action' => 'start'
),
array(
1 => 'area'
),
'%s'
)
);
问题是,当我调用'/ foo'并在视图中使用Url Helper时,它不会给我任何参数:
$this->url(array("page"=>1));
// returns '/foo' (expected '/foo/page/1')
$this->url(array("page"=>1), "item_start", true);
// also returns '/foo'
知道如何将页面参数放入URL吗?我不能像标准路线那样使用通配符,不是吗?
答案 0 :(得分:1)
您的正则表达式路由没有page
参数,因此当网址视图助手最终使用您提供的参数调用Route::assemble()
时,它会忽略您的page
值。
我想到的两个选择是:
page
参数page
参数。答案 1 :(得分:1)
除了David的建议,您可以更改此路由以使用标准路由类,然后保留通配符选项:
$router->addRoute('item_start',
new Zend_Controller_Router_Route(
':area/*',
array(
'module' => 'default',
'controller' => 'item',
'action' => 'start'
),
array(
'area' => '(foo|bar|baz)'
)
)
);
// in your view:
echo $this->url(array('area' => 'foo', 'page' => 1), 'item_start');