3

私は最近、CakePHP を使用して数年前に行ったプロジェクトを書き直し始めました。今回はすべてを「正しく」実行しようとしているので、誰かが次のことを行うための指針を教えてくれるかもしれません:

ビューで Model->find('all') を使用して、テーブルから単純なテーブルを表示しています。このテーブルには 2 つのブール型フィールドがあり、これらを組み合わせて、ユーザーに表示する必要があるものを構成しています。したがって、0x0 = 'A'、1x0 = 'B'、0x1 = 'C'、1x1 = 'D' です。このロジックをどこに置くべきですか?以下の方法を考えてみました。

  1. 景色
  2. ビューヘルパー
  3. コントローラー
  4. Model->find('all') がこの値を出力するようにモデル内に何か (それは可能ですか?)

このタスクは些細なことのように思えるかもしれませんが、このプロジェクトを最初から整理して保守できるようにすることを学ぶことができると思います。

ありがとう!

4

4 に答える 4

5

まあ、ファイナルテーブルを構成するロジックの種類(プレゼンテーションかビジネスか)によって異なります。

コマンド ライン インターフェイスなど、新しいタイプの UI を追加するとします。そこにテーブルをどのように表示しますか? View に渡されるデータは、HTML 表示とコンソール表示の両方で同じでなければなりません。したがって、そのデータの準備を担当するロジックはビジネスロジックであり、モデルに配置する必要があります。データの表示を担当するロジックは、ビューに配置する必要があります (複数回使用する場合はビュー ヘルパーに配置する必要があります)。

そして、この種のロジックを Controller に配置しないでください。

于 2010-02-17T08:07:54.187 に答える
1

あらゆる場所で使用するものであれば、モデルに入れます。その値を返すモデルにメソッドを配置するか、取得したすべての行をafterFindコールバックでループして適切なフィールドとして設定することができます。

于 2010-02-17T08:05:41.007 に答える
0

レンダリング スタイルを決定するものであれば、この種のロジックをビューに入れます。このようにして、デザイナーは最大限のアクセス権を持ち、それに応じてスタイルを設定できます。

一方、2 つの列がデータモデリングの便宜のためにのみ存在する場合は、モデルに入れます。設計者は、他の可能性を意識するべきではありません!

于 2010-02-18T15:58:42.370 に答える
-1

コントローラーで!モデルのメソッドはコントローラーに入っています。ビューは出力用です (HTML UI プログラミングのように)。

于 2010-02-17T08:00:30.243 に答える