Zend framework 如何更改Zend Url的分隔字符?
我使用Zend URL视图帮助器构建我的URL。除了一件事之外,所有的事情都和我想的一样:url中用于替换空格的字符是加号(+)。我希望它是一个“分钟”()。我怎样才能改变这个 例如: 现在:/nl/nieuws/bericht/3/title/nieuwe**+附件 愿望:/nl/nieuws/bericht/3/title/nieuwe-**附件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视图帮助器似乎可以在其
$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已经有一段时间了。