我正在尝试更改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',
],
]
答案 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 是如何工作的,因为它可能需要通过它的标题来搜索模型,而你正在改变它。