我想通过URL助手和路由器传递额外的参数 - 因此不会出现在地址栏中 - 但可以通过getParam调用访问
我的路线在下面 - 注意我希望通过
无形传递的tagID 'router' => array(
'routes' => array(
'tag' => array(
'route' => '/tag/:tag',
'defaults' => array(
'module' => 'default',
'controller' => 'tags',
'action' => 'profile',
'tag' => '',
'tagID' => ''
)
)
)
URL帮助程序指定TagID
url(数组('代码' => $ tag,' tagID' => $ v-> id),' tag',true )?>
基本上这可以让地址栏显示
localhost.com/tag/php
但是控制器可以访问tag和tagID参数吗?
干杯
伊恩
答案 0 :(得分:1)
如果您为每个标记添加路线,则可以为它们指定默认值,您无需在网址中明确定义它们。
像这样(foreach标签):
'route' => '/tag/php',
'defaults' => array(
'module' => 'default',
'controller' => 'tags',
'action' => 'profile',
'tag' => 'php',
'tagID' => 'phpID'
)
答案 1 :(得分:1)
据我所知,这是不可能的。由于您正在处理标准的GET请求,因此无处可隐藏任何变量。这真的是关于http协议,而不是Zend。
在网址之间移动数据/状态有两种方法:GET(即编码到实际的URL和POST。
由于这里的POST请求不合适,您可能会遇到可见的URL参数,或者从接收页面上的标签名称重建tagID。
答案 2 :(得分:0)
在你的行动中使用:
$tagId = $this->_getParam('tagId', 'yourDefaultValue');