gpt4 book ai didi

url - 如何将 URL ""替换为 "-"或 "_"?

转载 作者:行者123 更新时间:2023-12-04 20:23:14 26 4
gpt4 key购买 nike

在 YII
如果标题中有用于 url 的空格,则默认情况下空格将替换为“+”号。像这样的东西:

www.domain.com/event/view/id/Dj+Robag+Ruhme



我想要做的是,我想用“-”(破折号)或“_”(下划线)替换“+”号。像这样的东西:

www.domain.com/event/view/id/Dj-Robag-Ruhme



或者

www.domain.com/event/view/id/Dj_Robag_Ruhme



现在我的 urlManager 是:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
'rules'=>array(
//'<controller:\w+>/<id:\d+>'=>'<controller>/view',
//'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
//'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),

最佳答案

嗯,没什么奇怪的,因为 Yii 使用 urlencode 对url参数进行编码。

第一种方法

你可以在你的模型中处理这个,例如:

public function getUrl()
{
return Yii::app()->createUrl('/model/view', array(
'id'=>str_replace(' ', '-', $this->id),
));
}

不要忘记:
  • 替换 model与您的模型名称,
  • 使用此方法获取您的模型网址,
  • 修改 Controller 中的 View 操作:
    public actionView($id)
    {
    $id = str_replace('-', ' ', $id);
    // .....
    }

  • 第二种方法

    您可以使用自己的 CUrlRule 类(class) :

    http://www.yiiframework.com/doc/guide/1.1/en/topics.url#using-custom-url-rule-classes

    关于url - 如何将 URL ""替换为 "-"或 "_"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16186620/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com