3

CodeIgniter で優れた MVC モデルを作るもの。私の「ユーザー」モデルが現在行っていることは、基本的にデータベース ライブラリと同じアクティブ レコード関数を使用することです。唯一の違いは、データベース テーブルを指定する必要がなく、次のようにするだけであるということです。

$this->usermodel->where('username','test'),
$user = $this->usermodel->get();

「ずっと簡単」ではないので、これはちょっとぎこちなく感じます。

私が考えたもう 1 つの方法は、ユーザー モデルをユーザー オブジェクトのように、ロード関数を使用して作成することでした。ただし、複数のユーザーをロードする場合、これは効率的ではありません。

皆さんからヒントをいただけませんか?ありがとう。

4

3 に答える 3

2

良いヒントは、モデルにビューを直接話させないことです。この種の通信を行うには、常に(または可能な場合は)コントローラーを使用する必要があります。

モデル内にロジックを入れるのは悪い習慣だという意見も聞いたことがあります...これが本当かどうかはわかりませんが、これは私が何度も破ったルールです(誰かがこの主題についてもっと知っているなら修正してください)自分)。

そしてもちろん、モデルは再利用可能であるべきであることを常に念頭に置いているので、アプリケーション固有ではなく、いくつかの問題に対して一般的な解決策を提供しようとしています...一方、コントローラーは使い捨てコンポーネントのように見えるので、ここで醜いことをする必要があります他のプロジェクトで使用されることはありません...

それが少し役立つことを願っています

于 2010-11-07T12:47:17.470 に答える
0

大量のデータセットを処理していて、複雑なクエリを多数作成する場合は、「はるかに簡単」になると思います。私が理解しているように、比較的単純なもので作業している場合は、モデルを放棄して、コントローラー内からdb呼び出しを行うことができます。それ自体は「ベストプラクティス」ではなく、個人的な好みです。

MVCアーキテクチャーは、コードのより良いコンパートメント化を可能にし、コードのより良い構造と再利用を可能にしますが、多くのことを達成するためにMVCのアイデアに従う必要はありません。

于 2010-06-28T23:55:07.937 に答える
0

要点は、すべてのアプリケーション ロジックをモデルに抽象化し、単に Web インターフェースを「制御」し、Web インターフェースとモデルの間を仲介するためにコントローラーを使用することです。

モデルは適切なプログラムであり、アプリケーション モデルに影響を与えることなく、ユーザー インターフェイスを簡単に完全に再設計できるはずです。

于 2010-06-29T10:29:06.523 に答える