0

形式の URL を変換したい

パス/to/my/app/Controller_action/id/2

path/to/my/app/Controller_action/id/User_corresponding_to_id_2

私はすでにYii からこのチュートリアルを見ましたが、何の役にも立っていません。誰でもこれで私を助けることができますか?

編集: POST シナリオでもこのことが可能かどうかも知りたいです。つまり、URL に path/to/my/app/Controller_action しかありません。

4

2 に答える 2

1

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));
于 2012-05-15T07:02:03.413 に答える