0

非常に大きな Web サイトを構築するためのフレームワークとして codeIgniter を使用しています。すべて順調。モデルを使用して、データベースとの間でデータを取得/送信します。しかし、ある質問が最近私を混乱させました。ページ全体のループからデータを取得する際に、モデルは使用しません。

たとえば、右側のサイドバーの場合、ループを使用してカテゴリのリストを取得します。現在、このループは配列に基づいており、この配列はデータベースから取得されたデータのセットです。この DB からのデータ取得はコントローラーで処理されます。これは正しいです?または、DB からのみ、モデル内でのみデータを絶対に取得する必要がありますか? 私はモデルを登録/ログイン/ニュースレター/注文などにのみ使用しているため.

これは、DB データの取得も担当するコントローラーの 1 つです。

$this->niazer->データベースデータの取得を担当するライブラリです(現在のプロジェクト専用に作成されています)

<?php
/**
    This controller is the basic controller to render the webpages. Now we have the 
**/
class show extends CI_Controller
{
       function index()
        {                                       

            /** getting list of categories **/

            $cats = $this->niazer->get_pa('all'); // getting all the parents
            $x= $this->niazer->get_child($cats);    
            $data['main_cats'] = $cats;     
            /** getting list of categories **/

            /** getting list of special ads with 5-7 stars **/
            $special_ads_var = $this->niazer->get_ads(array("star-min"=>5, "star-max"=>7, "row"=>5)); // getting all the parents
            $data['special_ads'] = $special_ads_var;    
            /** end of special ads list **/


            /** getting list of special ads with 5-7 stars **/
            $special_ads_var = $this->niazer->get_news(array("limit"=>20)); // getting all the parents




            $theme_name = $this->theme->get_theme_with_slash(false);                                    

            $this->load->view($theme_name.'header', $data);
            $this->load->view($theme_name.'index', $data);
            $this->load->view($theme_name.'footer', $data);

        }

}
4

2 に答える 2

3

それが優れた実践と原則に関するものである場合、あなたはそれを間違っています.IMO.

このモデルは、ユーザーが要求したもの (メッセージ、本のリスト、フォト アルバムなど) のデータ表現をコントローラーに提供します。このデータ モデルは、どのようにユーザーに提示したい場合でも同じです。そのため、利用可能な任意のビューを選択してレンダリングできます。モデルには、アプリケーション ロジックの最も重要な部分である、扱っている問題 (フォーラム、ショップ、銀行など) に適用されるロジックが含まれています。

コントローラーには、アプリケーション自体の内部組織的なロジックが含まれています (ハウスキーピングに似ています)。

これらのことについてここに書くことはできませんが、この回答はあなたが探しているものをカバーしていると思います.

正直なところ、プログラミングを始めたばかりの頃CIは a も使用していませんでしたMODELが、アプリケーションはうまく機能しましたが、今ではルールに従っています。ルールと原則 ( SOLID ) に従うのには明らかに十分な理由があります。だから、あなたは今やっているようにそれをすることができます。誰もあなたを強制しません。

于 2013-11-14T15:04:43.033 に答える