0

当站点在目录下运行时,如何强制 Zend Router 组装正确的 url?

这就是我的意思:

$this->view->url(array('controller' => 'controller', 'action' => 'action'), null, true)

通常会返回类似于/controller/action在我的情况下返回的内容/tbogdanov/brandenburg/controller/action,因为该站点正在目录中运行/tbogdanov/brandenburg

这实际上是一个很好的 URL,我对此没有任何问题。但是,当传递给$this->_redirect()重定向器时,只会再次添加目录。所以,最终的重定向 url 现在看起来像这样/tbogdanov/brandenburg/tbogdanov/brandenburg/controller/action

现在,这是不正确的。

有没有我可能会丢失的设置?似乎 zend 知道它在目录/子目录中运行,但在某些时候,它仍然忽略它。我正在寻找一个好的通用解决方案,没有str_replace人!

即使在某些时候项目被移动到根目录中(这将会发生),该方法也应该正常工作。

4

2 回答 2

2

的第二个参数_redirect()配置选项。添加array('prependBase' => false)并重试。

于 2012-10-03T15:03:24.190 回答
0

尝试使用重定向器对象,您可以在其中有更多链接创建选项

http://framework.zend.com/manual/1.12/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.redirector

    // Redirect to 'my-action' of 'my-controller' in the current
    // module, using the params param1 => test and param2 => test2
    $this->_redirector->gotoSimple('my-action',
                                   'my-controller',
                                   null,
                                   array('param1' => 'test',
                                         'param2' => 'test2'
                                         )
                                   );
于 2012-10-03T15:09:17.487 回答