yii2 User个人主页url的生成疑问

新手提问 · dzoocn · 于 8个月前 发布 · 528 次阅读

https://php.la/ 用户的个人主页的链接,有的是以用户名为url,有的是以id为url,这个如何实现的?增加一个alias别名,默认为userID,生成链接时候以 ['/user/view', 'alias' => $model->alias] 生成吗?

共收到 3 条回复
forecho#18个月前 0 个赞

我发现 ID 和 username 都可以,比方说 https://php.la/user/phphttps://php.la/user/2

实现起来其实很简单,无非就是有两条规则,类似

 'user/<username:\w+>' => 'users/default/show-username',
 'user/<id:\d+>' => 'users/default/show-id',
dzoocn#28个月前 0 个赞

@forecho [[#1楼](#comment1)](#comment1) 可能我描述的问题导致理解上有差异;我的意思是 views视图中如何去写这个用户主页的url地址呢?

应该不是

['/user/view', 'username' => $model->username]

也不是

['/user/view', 'id' => $model->id]

因为个人中心设置别名之后,所有的该用户url都自动变更非ID模式了

forecho#38个月前 0 个赞

哦,我明白你意思了。

我觉得有两种放手可以实现这种效果:

  • 一种是在 view 层判断,如果设置了别名就使用 ['/user/view', 'username' => $model->username],否则就使用 ['/user/view', 'id' => $model->id]
  • 另一种方式就是使用 ['/user/view', 'key' => $model->username ? $model->username : $model->id],然后 URL rule 应该是个正在匹配
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册