Если у каждого пользователя есть уникальное имя пользователя, вы можете описать маршрут, который не показывает его идентификатор пользователя, добавив это пользовательское правило маршрутизации в config/main
:
'urlManager' => array(
'rules' => array(
'user/<username:\S+>' => 'users/view',
)
)
\S+
должен принимать "@". Затем передайте это имя пользователя на controllers/UsersController
примерно так:
public function actionView($username) {...}
Вместо www.mydomain.com/user/update/username
я бы использовал www.mydomain.com/user/<username>/update
и поместил бы это в приведенный выше массив правил urlManager:
'user/<username:\S+>/update' => 'users/update',
и это в UsersController
:
public function actionUpdate($username) {...}
Вы также можете сгенерировать уникальное случайное число для каждого пользователя перед созданием и маршрутизацией на основе этого числа.