Zend framework 如何更改Zend Url的分隔字符?

Zend framework 如何更改Zend Url的分隔字符?,zend-framework,url,Zend Framework,Url,我使用Zend URL视图帮助器构建我的URL。除了一件事之外,所有的事情都和我想的一样:url中用于替换空格的字符是加号(+)。我希望它是一个“分钟”()。我怎样才能改变这个 例如: 现在:/nl/nieuws/bericht/3/title/nieuwe**+附件 愿望:/nl/nieuws/bericht/3/title/nieuwe-**附件 谢谢你的建议 文档中没有这一点,但Zend URL视图帮助器似乎可以在其$urlpoptions数组中获取一个名为chainNameSeparat

我使用Zend URL视图帮助器构建我的URL。除了一件事之外,所有的事情都和我想的一样:url中用于替换空格的字符是加号(+)。我希望它是一个“分钟”()。我怎样才能改变这个

例如: 现在:/nl/nieuws/bericht/3/title/nieuwe**+附件 愿望:/nl/nieuws/bericht/3/title/nieuwe-**附件


谢谢你的建议

文档中没有这一点,但Zend URL视图帮助器似乎可以在其
$urlpoptions
数组中获取一个名为
chainNameSeparator
的参数。不能保证这就是你要找的,但是试着玩一下,看看它是否改变了什么。

这很可能发生,因为默认情况下,
Zend\u View\u Helper\u Url
urlencode()
你发送它的内容,这将把空格转换成
+
。我的建议是为代码中需要特殊屈折变化的URL类型创建一个新的视图帮助器

比如:

class Default_View_Helper_SpecialUrl extends Zend_View_Helper_Abstract
{
    public function specialUrl(array $opts = array(), $name = null, $reset = false, $encode = true)
    {
        if (!empty($opts['whatever'])) {
            $opts['whatever'] = str_replace(' ', '-', $opts['whatever']);
        }

        $router = Zend_Controller_Front::getInstance()->getRouter();
        return $router->assemble($opts, $name, $reset, $encode);
    }
}

通过这种方式,在路由器进行URL编码之前,为任何必要的路由参数更改空格。

这是在其中一个参数上发生
urlencode()
的结果。链接路线时使用
chainnamesparator
。我想你可能在想
Zend\u Controller\u Dispatcher\u Abstract
中的
setWordDelimiter()
。啊,我明白了-我使用ZF已经有一段时间了。