我有 url, localhost/user/about/id/5
,我希望它转换为 like localhost/john.doe/about
,是否可以在 Yii 中做到这一点?
john.doe
指用户名
about
指操作
我想隐藏控制器名称,在这种情况下user
谢谢您的帮助
是的,您需要使用此处的文档中的自定义 UrlRule (Using Custom Url Classes)。然后,您可以在您的类中剥离 URL,尝试查找用户名(如果它不存在)return false
,然后让其余的 URL 规则处理。
请记住,您放置自定义规则的 URL 规则的顺序越高,它运行的频率就越高(因为 UrlManager 将在第一个匹配规则上退出),因此如果您将其放在顶部,它会对性能产生影响。
奖励
这也将帮助您生成 URL,因为您可以将用户名作为参数传递给普通 URL,并让您的类完成复杂的操作。