2012-03-23 4 views
0

私は、コンテンツの80〜90%がフォームまたはデータテーブルのいずれかであるWebアプリケーションを構築しています。私はcodeiginiterを通してMVCを利用しています。MVC:ほぼすべてのコンテンツがモデルで生成されます。その他のコンテンツのビューを使用する必要がありますか?

フォームとテーブルの生成に対応するクラスを構築しました。これらのフォームとテーブルはモデルで作成され、ビューは単純にエコーするフォーム/テーブルオブジェクトに渡されます。

* load head and header views * 

<?=$form?> 

* load footer view * 

私は異なるレイアウトを持っているときに、私は唯一の1ページ、すなわち2つの形態、新しいビューを必要とする - :これは私の意見は非常に痩せており、それらのほとんどは、単に行うので、私はビューを再利用することを意味します。

質問は、フォームや表ではないいくつかのコンテンツ、たとえばいくつかのサマリー情報、または単にテキストの段落がある場合はどこですか?他のコンテンツの操作はすべて私のモデルで行われているので、ビューに入れるのは間違いです。フォームやテーブルを編集したいのであれば、私はモデルを見て、まれに私の見解を見ることさえありません。

私はその後、私は、モデル内のコンテンツを作成することができます...多分段落と要約情報を出力を扱うでしょう、単純な「コンテンツ」クラスを作成することを考え...

編集した

思考これについては、サマリー情報を生成する必要があるため、これは当然ながらモデルで実行する必要があります。テキストの段落のような '固定'のコンテンツは、静的でありながらデータベースに格納するのにもかかわらず、まだデータであるにもかかわらず、それはまだどこかに格納されなければならず、モデルに格納する必要があります。

答えて

0

モデルで行っている書式設定作業を行うビューを持つ方がより論理になります。

モデルは、この種のデータを配列の形で返します。次に、配列からフォームをレイアウトできるビューが必要です。 Codeigniterでは、これはフォームヘルパーのおかげでとてもうまく行きます。例では

、ブートストラップ2で動作するフォームの作成者:https://github.com/FoOlRulez/FoOlFuuka/blob/master/application/views/admin/form_creator.php

景色の美しさは、あなたがあなたの問題を解決することができ、それらを積み重ねると混在させることができるということです。例では、このようにそれらを呼び出すことができます。私のアプリケーションで

$data['form'] = $this->radix->board_structure(); // this holds a huge array that I associate to a database model 
$this->viewdata["function_title"] = _('Editing board:') . ' ' . $board->shortname; 
$this->viewdata["main_content_view"] = $this->load->view('admin/form_creator', $data, TRUE); 
$this->load->view('admin/default', $this->viewdata); 

が、これはそれが形にページのコンテンツを作成し、デフォルトの管理パネルラッパーにそれをスティック、ページにタイトルを設定します。あなたはビューにそれを持っている限り、基本的に何でもすることができます。

+0

私のモデルは書式設定を行わず、フォームフィールドの名前、型、および検証規則を設定し、Formオブジェクトを作成するだけです。フォーマットは私のフォームライブラリにカプセル化されています。 私は今、オブジェクトルートに固執すると思います。これは、フォームに付随するすべてのエクストラの複雑さを抽象化することを可能にします。例えば、モーダルアヤックスフォームは、それは編集可能です:Tableオブジェクトは私のモデルを呼び出し、正しいFormオブジェクトをスローし、必要なjを持つビューに配置します。 – rgvcorley

関連する問題