在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>',
),
),
答案 0 :(得分:7)
嗯,没有什么奇怪的,因为Yii使用urlencode
来编码url参数。
第一种方法
您可以在模型中处理此问题,例如: :
public function getUrl()
{
return Yii::app()->createUrl('/model/view', array(
'id'=>str_replace(' ', '-', $this->id),
));
}
不要忘记:
model
替换为您的模型名称修改控制器中的视图操作:
public actionView($id)
{
$id = str_replace('-', ' ', $id);
// .....
}
第二种方法
您可以使用自己的CUrlRule
课程:
http://www.yiiframework.com/doc/guide/1.1/en/topics.url#using-custom-url-rule-classes