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