URL中的urlManager用户名


Yii urlManager username in URL

我有url, localhost/user/about/id/5,我想把它转换成一个像localhost/john.doe/about,有可能在Yii?

john.doe为用户名about表示动作

我想隐藏控制器名称,在本例中为user

Thanks for the help

是的,你需要使用一个自定义的UrlRule在这里的文档(使用自定义Url类)。然后,您可以剥离类中的URL,尝试找到一个用户名,如果它不存在,只需return false,然后让URL规则的其余部分处理。

请记住,你的自定义URL规则的顺序越高,它就会越频繁地运行(因为UrlManager会在第一个匹配的规则上退出),所以如果你把它放在最上面,它会影响性能。


这也将帮助您生成URL,因为您可以将用户名作为参数传递给普通URL,并让您的类执行复杂的操作。