con*_*ile 2 php url-routing yii
我正在使用yii框架并拥有不同的用户帐户.当我想要查看用户4的视图页面时,我必须输入一个类似于www.mydomain.com/user/4我更新的URL www.mydomain.com/user/update/4.
有没有办法让我可以隐藏网址行的用户ID?
我怎样才能设置像www.mydomain.com/user/username和的路线www.mydomain.com/user/update/username?我必须修改路线吗?
如果username包含@符号怎么办?
如果每个用户都有唯一的用户名,您可以通过将此自定义路由规则放入以下内容来描述不显示其用户ID的路由config/main:
'urlManager' => array(
'rules' => array(
'user/<username:\S+>' => 'users/view',
)
)
Run Code Online (Sandbox Code Playgroud)
本\S+应该接受"@".然后传递该用户名,controllers/UsersController如下所示:
public function actionView($username) {...}
Run Code Online (Sandbox Code Playgroud)
而不是www.mydomain.com/user/update/username我会使用www.mydomain.com/user/<username>/update并将其放在上面的urlManager规则数组中:
'user/<username:\S+>/update' => 'users/update',
Run Code Online (Sandbox Code Playgroud)
这个在UsersController:
public function actionUpdate($username) {...}
Run Code Online (Sandbox Code Playgroud)
您还可以在创建之前为每个用户生成唯一的随机数,并根据该数字进行路由.