2012-02-07 10 views
1

私は自分のMVCを作成しています。しかし、私は問題に遭遇しました。以前知っていたように、 "www.site.com/users/star"のようなURLがある場合、 "users"はコントローラとして定義され、 "star"はMVCスタイルのメソッドとして定義されます。だから、私はユーザーのためのプロフィールページを作りたいと思っています。私は "www.site.com/user/{username}"のようなURLが必要です。この場合、usernameはメソッドとして評価されていますが、そうであってはいけません。それは単なるユーザーの名前です。どのようにしてこの複雑さを防ぐことができますか?ここでメソッドの問題MVCで

は私のbootstrap.phpのです:事前に http://tinypaste.com/75cd8487

おかげ..

+0

実際のMVCエンジンを使用してください。なぜあなた自身のために多くのトラブルを引き起こすのですか?たくさんのフリー・フレームワークがありますが、私はあなたがなぜホイールを再発明したいのか想像できません。 – spinon

+0

@spinon練習および/または経験のため。あなたは、X-Frameworkのブートストラップをどれくらい早く手に入れて、同じ問題に対する解決策を使って素早く身元を知ることができるかに驚くでしょう。 –

+0

ルータは、リクエストの解釈が始まる前に、 "user /"を "user/view /"に置き換えることができます。この方法では、メソッドの代わりに2番目の引数をidにすることができます。これはもちろん、ルーティングで本当に複雑にならない限り、ユーザコントローラを1つの方法に制限します。したがって、フルパス "user/view/id"の使用を検討してください。 – dqhendricks

答えて

-1

多くのフレームワークにはルートという概念があります。経路では、URLはコントローラ/アクションの具体的な定義ではありません。 'users/*'のようなルートを指定して、ユーザーのコントローラーと表示アクションを指すようにすることができます。次に、さまざまなパラメータを処理するのはコントローラに任されます。

0

あなたは別のURLを使用することができます:今

www.site.com/user/view/{username} 

を、viewはなるだろう方法であります{username}パラメータを渡しました。

+0

私はこの方法を試してみます。ありがとう!それ以外の場合は、他の友人が以前に言ったようにルータを作成します。 –

0

ニッブが正しいですが、コントローラー(ユーザー)のメソッド(情報、メッセージなど)へのバックグラウンド(クライアントのリダイレクトなし)でこれらの種類の要求(コントローラーのユーザーにはアクションメソッドがありません)を再ルーティングするリルートメカニズムを作成できます。ビューなど)。