有没有办法转换" +"到" - "在URL Yii2?

时间:2016-03-29 12:23:03

标签: php yii yii2 yii-url-manager

我正在尝试更改paramlinks以在我的yii2应用程序中包含帖子的名称。

  

example.com/item/hello+world

  

example.com/item/hello-world

这些是我的urlmanager在frontend / config / main.php

中的规则
'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                '/' => 'site/index',
                'item/<title:[A-Za-z0-9 -_.]+>' => 'item/view',
            ],
        ]

2 个答案:

答案 0 :(得分:0)

$hi = 'example.com/item/hello+world';
$hi = str_replace('+', '-', $hi);

echo $hi;

这样你可以用str_replace

替换你需要的东西

输出:

  

example.com/item/hello-world

您显示的输出网址放在一个变量中,然后我填写我要替换的内容 + ,应该覆盖的是 - 符号,然后存储它再次在一个名为 $ hi 的变量中。

答案 1 :(得分:0)

您的问题是Url::toRoute方法。默认情况下,它将用“+”替换空格。并且没有任何配置可以改变它(至少我没有找到)。

您可以使用{@ 1}}之类的@baboizk,或者,如果您想要覆盖任何重音符号,符号等,您可以使用BaseInflector::slug。例如:

str_replace

但是我仍然不确定你的 actionItem 是如何工作的,因为它可能需要通过它的标题来搜索模型,而你正在改变它。