我希望能够访问/创建一些这样的网址:
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!!
答案 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));