2010-05-07 46 views
0

我使用Zend的URL視圖助手來建立我的網址。除了一件事之外,任何事物都可以正常工作:用於替換url中空格的字符是加號(+)。我希望它是一個'分鐘'( - )。我該如何改變這一點?如何更改Zend Url的分隔字符?

實施例: 現在:/ NL /呼號/ bericht/3 /標題/ NIEUWE ** + affiches 願望:/ NL /呼號/ bericht/3 /標題/ NIEUWE - ** affiches

非常感謝!

回答

1

這不是在任何地方的文檔中,但看起來Zend URL視圖助手可以在它的$urlOptions數組中調用參數chainNameSeparator。不保證這就是你要找的東西,但試着玩,看看它是否會改變任何東西。

+1

這是在其中一個參數上發生'urlencode()'的結果。鏈接路由時使用'chainNameSeparator'。我想也許你在'Zend_Controller_Dispatcher_Abstract'中想着'setWordDelimiter()'。 – awgy 2010-05-08 15:53:09

+0

啊,我知道了 - 自從使用ZF以來已經有一段時間了。 – ABach 2010-05-08 18:05:13

1

這可能是因爲,默認情況下,Zend_View_Helper_Urlurlencode()您發送的內容,它會將空格轉換爲+。我的建議是爲代碼中的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編碼發生路由器之前。