Yii 2. 将 URL 中的“+”替换为“-”

Yii 2. Replace "+" in URL to "-"

我想要什么

我想将 URL-attrib 中的“+”替换为“-”。我正在使用 Yii 2。

我想用“-”工作 URLs。 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'] ]); ?>

+ 是由于对 space 字符进行 urlencoding 而生成的。

如果您只想将 + 更改为 -,您可以这样做:

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

这会将名称中的每个 space 更改为 -(在此处的示例中,位置和名称都已更改)并且未修改 urlencoded -