2016-08-12 110 views
1

我想要什麼的Yii 2.替換 「+」 網址 「 - 」

我要替換 「+」,在URL-ATTRIB爲 「 - 」。我正在使用Yii 2.

我想使用帶「 - 」的工作網址。 URL :: to(...)用「 - 」生成URL。我希望用戶在他的瀏覽器地址面板中看到「 - 」。

<siteneme>/hospital/U.S.A./Cleveland+Clinic 

對此

<siteneme>/hospital/U.S.A./Cleveland-Clinic 

我有什麼

這是我web.php

'urlManager' => [ 
      'enablePrettyUrl'  => true, 
      'showScriptName'  => false, 
      'enableStrictParsing' => false, 
      'rules'    => [ 

       //Site controller, hospital action 
       'hospital/<location>/<name>' => 'site/hospital', 

       '<controller:\w+>/<action:\w+>'    => '<controller>/<action>', 

       //removing 'controller' form URL 
       '<alias:index|search|detail|result|hospital>' => 'site/<alias>', 
      ], 

     ], 

這是怎麼考慮生成URL:

<?= Url::to([ 
       'hospital', 
       'location' => $item->locations['name'], 
       'name'  => $item->attributes['name'] ]); ?> 
+0

我想你是指' /醫院/美國/克利夫蘭 - 診所? –

+0

@Tom當然是。謝謝) –

+1

您需要更具體地瞭解您的請求。你想用 - 而不是+來創建新的URL嗎?或者你想在用戶輸入+還是想要獲取時將用戶重定向到URL--而不是控制器的操作中的+? – Bizley

回答

2

+是因爲URL編碼空格字符的產生。

如果你想只改變+-你可以做這樣的事情:

<?= Url::to([ 
    'hospital', 
    'location' => str_replace(' ', '-', $item->locations['name']), 
    'name'  => str_replace(' ', '-', $item->attributes['name']) 
]); ?> 

這將名稱更改每一個空間-(在本例這裏既有位置和名稱更改),並進行了urlencoded -未被修改。

+0

Ahahahahaha ...答案很明顯,我的問題很愚蠢)謝謝) –