zend框架url生成问题

发布于 2024-11-07 21:52:33 字数 715 浏览 1 评论 0原文

我在使用 zf 版本 1.11.6 生成简单的 url 时遇到一些困难。我正在为此使用 url 帮助器。

示例:

  • $this->url(array('controller' => 'index', 'action' => 'index'))
  • $this->url(array ('controller' => 'index', 'action' => 'view', 'id' => 1))

结果:

  • domain.com/index/index/id/1
  • domain.com/index/view/id/1

正如你所看到的,问题是连我都没有指定第一条规则的任何 id 参数,生成的 url 都包含它。 action 也会发生这种情况。如果我让第一条规则不带 action 参数,则会生成具有 view 值的规则(而不是使用 index 的默认值) 。假设我可以接受 action 的事情,但是当涉及到其他参数时,这是荒谬的。

即使我在控制器中使用第一个规则并在视图文件中使用第二个规则,也会发生这种情况。

对此有什么想法吗?谢谢。

I'm having some difficulties generating simple urls with zf version 1.11.6. I'm using the url helper for this.

Example:

  • $this->url(array('controller' => 'index', 'action' => 'index'))
  • $this->url(array('controller' => 'index', 'action' => 'view', 'id' => 1))

Result:

  • domain.com/index/index/id/1
  • domain.com/index/view/id/1

As you can see, the problem is that even I have not specified any id param to the first rule, the generated url contains it. This happens also with action. If I let the first rule without the action parameter, it will be generated having the view value (instead of using the default value of index). Let's say that I can live with the action thing, but this is absurd when it comes to the other parameters.

This happens even though I use the first rule inside my controller and the second one inside a view file.

Any thoughts on this ? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不必你懂 2024-11-14 21:52:33
try this
$this->url(array('controller'=>'index','action'=>'index'), 'default', true)
try this
$this->url(array('controller'=>'index','action'=>'index'), 'default', true)
仅此而已 2024-11-14 21:52:33

现在看到它很容易。

$this->view->url(array(),'admin/index');

结果是
域名.com
现在检查这个

$this->url(array('selected_id'=>$this->rd[$i]->id),'admin/index/detail')

结果
domain.com/detail/14

您应该在不希望有 id 值的地方提供空数组

Now see its quite easy.

$this->view->url(array(),'admin/index');

Result in
domain.com
and now chekc this

$this->url(array('selected_id'=>$this->rd[$i]->id),'admin/index/detail')

Results in
domain.com/detail/14

You should provide empty array where you dont want to have id value

苍白女子 2024-11-14 21:52:33

我假设您收到此错误是因为默认路由以某种方式被删除。请检查项目中某处是否执行了 removeDefaultRoutes 方法。

I'm assuming you're getting this error because the default routes are being deleted somehow. Please, check if there are any execution of the removeDefaultRoutes method somewhere in your project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文