关于 php:Yii urlManager 用户名在 URL

Yii urlManager username in URL

我有 url,localhost/user/about/id/5,我希望它转换成类似 localhost/john.doe/about,在 Yii 中可以做到吗?

john.doe 指用户名
about 指的是动作

我想隐藏控制器名称,在这种情况下 user

感谢您的帮助


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

请记住,您放置自定义规则的 URL 规则的顺序越高,它运行的频率就越高(因为 UrlManager 将在第一个匹配规则上退出),因此如果您将其正确放置在顶部。

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