私は url を持っています。それlocalhost/user/about/id/5
を like に変換したいのですがlocalhost/john.doe/about
、Yii でそれを行うことは可能ですか?
john.doe
ユーザー名
about
を参照 アクションを参照
コントローラ名を非表示にしたい、この場合user
助けてくれてありがとう
はい、こちらのドキュメント (Using Custom Url Classes)のようにカスタム UrlRule を使用する必要があります。次に、クラス内の URL を切り離し、ユーザー名が存在しない場合は単純に見つけてreturn false
、残りの URL ルールを処理させることができます。
カスタム ルールを配置する URL ルールの順序が上になるほど、(UrlManager が最初に一致するルールで終了するため) 実行される頻度が高くなるため、一番上に配置するとパフォーマンスに影響することに注意してください。
おまけ
これは、ユーザー名をパラメーターとして通常の URL に渡すだけで、クラスに複雑な部分を実行させることができるため、URL の生成にも役立ちます。