1

CodeIgniterを使用して、CRUD管理パネルを備えたシンプルなアプリを開発しています。私のモデルの1つには5つのオプションの画像があるため、新しいレジスタを作成するときに、アプリはユーザーが入力した画像の量を確認し、それらを適切にアップロードして保存する必要があります。

現在、アップロードとストレージを処理するコードは私のコントローラーにあります。しかし、私はMVCについて多くのことを読んでおり、コントローラーは可能な限りスキニーにする必要があると言う人もいるので、そのコードをモデルに移動するのは良い考えではないかと思います。

どう思いますか?

4

2 に答える 2

2

あなたはあなた自身の質問に答えました。それはモデルにあるはずです。とはいえ、モデルはグローバルまたはスーパーグローバル変数を使用すべきではありません。$_FILES[..] をモデルが使用できるファイル名に変更するのはコントローラー次第です。

于 2012-10-02T12:10:05.187 に答える
2

はい、CI の例 (ユーザー ガイド) では、ファイル アップロード ロジックはコントローラーに配置されますが、そのようなコードをモデルに配置することをお勧めします。MVC によると、コントローラーはアプリケーションの「仲介者」と見なすことができます。ユーザーと連携してデータを取り込み、モデルを操作して適切なデータまたは計算を取得し、ビューを操作してユーザーに応答を表示します。

また、モデルは、ユーザーの画像をアップロードしたり、ユーザー情報や画像を取得したりする関数など、それが表すものに関係する関数と変数を保持する責任があります。そのため、コントローラーではなくモデルにファイル アップロード コードを追加することを好みます。

于 2012-10-02T12:09:00.910 に答える