urlManager规则与自定义网址

时间:2013-07-26 13:34:14

标签: php yii

我希望能够访问/创建一些这样的网址:

http://mywebsite.com/player/Name-Surname-100/

在视图中,我使用以下链接正确生成链接:

$this->createUrl('player/view', array('id' => $player->id, 'slug' => $player->slug))

在我的main.php配置文件中,我定义了以下规则:

'player/<slug:\w+>-<id:\d+>' => 'ui/player/view',

但没有成功(我收到以下错误消息:无法解析请求“player / Name-Surname-100”。)。在我的“播放器”模型(表格)中,我也有“slug”属性(列)。

编辑:

http://mywebsite.com/player/Name-Surname-anotherName-100/ //not working
http://mywebsite.com/player/Name_Surname_anotherName-100/ //it works!!

1 个答案:

答案 0 :(得分:0)

你的urlManager规则在slug和id之间有“ - ”作为分隔符。

使用Larry的urlManager规则允许在URL中使用“ - ”:

'player/<slug:[\w\-]+>-<id:\d+>' => 'ui/player/view'

另一种方法是替换slug中的所有“ - ”。

$this->createUrl('player/view', array('id' => $player->id, 'slug' => str_replace('-','_'$player->slug));