dInGd0nGは正しい方向に進んでいますが、私が正しく理解していれば、IDではなく実際のユーザー名に基づいてアクションを実行したいと思いますか?
Yiiではそれほど難しくありません。ここでは、簡単にするために、コントローラーはユーザーであり、アクションはビューであると想定しています。
ユーザーコントローラー:
public function actionView($id)
{
if (is_numeric($id))
$oUser = User::model()->findByPk($id);
else
// Luckily Yii does parameter binding, wouldn't be such a good idea otherwise :)
$oUser = User::model()->findByAttributes(array('username' => $id));
...
}
urlManagerの構成:
'user/view/<id: \w+>' => 'user/view',
またはより一般的に:
'user/<action: \w+>/<id: \w+> => 'user/<action>',
ビューでユーザーURLを生成するには:
$this->createUrl('user/view', array('id' => $oUser->username));