0

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

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!!
4

1 回答 1

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));
于 2013-07-26T14:29:57.160 回答