2011-07-01 6 views
4

Yiiを使用して私の最初のWebアプリケーションを構築し、UserControllerの一部としてユーザー登録プロセスを組み込むのが最善かどうか、またはregistrationControllerを作成してロジックを分離しておく方が良いでしょうか?ユーザコントローラと登録コントローラを分離するか、2つを結合しますか?

...同じ考え方で、追加のユーザー情報を処理するprofileControllerを持たせるのが有益でしょうか、それともuserControllerでも同様に処理するのが有益でしょうか?

答えて

0

登録はユーザー作成ですか?

同様に、ユーザーのビューまたは更新だけのプロファイルですか?

基本的なCRUD操作のように、これらがすべて1つのコントローラにかなりよく当てはまるようです。

0

私の意見では、登録の概念は新しいユーザーを作成することであるため、UserControllerにすることができます。ですから、RegisterCreateと同じにすることができると思います。

0

実際、それらはあまり複雑ではなく、1つのコントローラ内にある可能性があります。 1つのコントローラにCRUDを含めることは、少なくとも自分の習慣です(私のアプリケーションには複雑なロジックが含まれていない可能性があります)

0

このフォームでは、ユーザーはデータブックに永久に保存されていないデータを入力する必要がありますか?その場合は、ActiveRecordではなくCFormModelから派生した新しいモデルを作成する必要があります。あなたのサイトコントローラは、サーバー(LoginForm)との動的な相互作用が必要ない場合、より複雑な相互作用がある場合は別のコントローラを持つことができる場合、自分自身(検証、ajaxなど)を処理するCFormModelビューの起動を処理できます。必要(RegisterForm)。 CFormModelでは、セッション中にユーザー入力にアクセスして処理/保存することができますが、ユーザーが完了すると消えます。例のパターンとして、BlogデモのLoginFormとRegisterFormを参照してください。 このフォームは、他のモデルと同じように多くの動的データをユーザーと同様に扱いますか(単なるカスケード関係のカスケードではありません)?その場合は、別々のRegisterControllerを作成することをお勧めします。それは、ブログのデモがやっていることだし、それはかなりシンプルなアプリだ。 giiを使用すると、Userモデルの管理者とコミュニティモデレータ/管理者用のCRUDインターフェイスを自動的に作成できます。管理者以外のユーザーのためにそれらのビューの1つを再利用したいときはいつでも、それをカスタマイズしてレンダリングすることができます。モデル内の検証ルールも引き継がれます。ゲストと通常特権を持つユーザーだけが、LoginFormとRegisterFormのダウンしたインターフェースを必要とします。

0

良いアイデアは、モジュールにユーザー関連のものを入れることです。そのため、別のアプリで簡単に使用できます。そのモジュールでは、プロファイルや他のユーザー関連のコントローラをアプリを混乱させることなく置くことができます。

関連する問題