首先,我想承认我没有做足够的搜索,主要是因为我不知道如何用适合搜索的单词。它是“在zend中获得干净的网址”还是“忽略了在zend中采取行动之后发生的事情”我真的不能很好地命名它,对此非常抱歉。指导我复制,我会立即删除它:>
现在,故事是这样的:
让我们在页面project/public/home
中说我有一个链接
<a href="<?php
echo $this->url(array(
'controller' => 'test',
'action' => 'index'
));
?>
">
<?php echo $this->translate('go_to_test_index'); ?>
</a>
这会让我project/public/home/test/index
(默认情况下省略索引)
让我们说另一个带参数的链接
<a href="<?php
echo $this->url(array(
'controller' => 'message',
'action' => 'add',
'id' => 1//some value or another parameter
));
?>
">
<?php echo $this->translate('go_to_add_message'); ?>
</a>
这会带我到project/public/home/message/add/1
直到现在我完全明白但是当我试图回去时会出现问题
<a href="<?php
echo $this->url(array(
'controller' => 'test',
'action' => 'index'
));
?>
">
<?php echo $this->translate('back'); ?>
</a>
据我所知,应该带我去project/public/home/test/index
但是我得到project/public/home/test/index/id/1
(索引没有省略)显示测试/索引页面,但是那个id参数是错误的< / p>
这个问题的正确名称是什么?是什么导致了它?我错过了url
的一些参数吗?有关如何修复它的任何指示?
提前多多感谢
引用的文档Zend View Helpers
答案 0 :(得分:2)
使用Url View Helper中的重置选项,如下所示。
<a href="<?php
echo $this->url(array(
'controller' => 'test',
'action' => 'index'
), null, true);
?>
">
<?php echo $this->translate('back'); ?>
</a>
以下是有关生成Urls的更多提示。
希望这有帮助。
答案 1 :(得分:1)
正如@Jay Bhatt所提到的那样,有一个reset
param默认为false。
如果要重置新生成的链接中的所有当前请求参数,请将其设置为true
。
<a href="<?php
echo $this->url(
array('controller' => 'test', 'action' => 'index'),
null,
true
);
?>"><?php echo $this->translate('back'); ?></a>
请注意,如果您只想重置一个参数,可以将其设置为null
<a href="<?php echo $this->url(array(
'controller' => 'test', 'action' => 'index', 'id' => null
));
?>"><?php echo $this->translate('back'); ?></a>
希望有所帮助