1

私はCIにとても慣れていません。:)

私のプロジェクトでは、ページをヘッダー、フッター、本文に分けました。そして、ボディ部分(ビュー)はコントローラーに基づいてロードされます。ヘッダーとフッターはすべてのページに共通です。

たとえば、ログインページの場合は次のようになります。

$this->load->view('header');
$this->load->view('login');
$this->load->view('footer');

しかし、今私の懸念は、「カテゴリ」セクション(本文部分の左側にいくつかのカテゴリ名をリストする)を生成する方法です。カテゴリをクリックすると、対応する詳細ページが右側に表示されます(つまり、コンテンツ部分)。したがって、すべてのビュー(すべてのページ)で、カテゴリのリストを表示する必要があります。

視覚的な例:

----------------------------
   Header Portion of Page
----------------------------
       Body Portion
       ============
Cat1 |
Cat2 |
Cat3 |     Content
Cat4 |
Cat5 |
----------------------------
          Footer
----------------------------

これらのカテゴリは、dbのデータから入力されます。

検索を行ったところです。そこで、ヘルパークラスを作成して自動ロードすることを考えています。したがって、すべてのビューで、関数を呼び出して結果をエコーし​​ます。

例:

function hlp_getCategories()
{
    $ci =& get_instance();
    $q = $ci->db->query('SELECT cat_name FROM tblCategories');
            return $q;
}

そして、ビューで:

<?php
$q = hlp_getCategories();
foreach ($q->result_array() as $row)
{
   echo anchor('cat/' . $row['cat_name'], $row['cat_name']) ;
}
?>

これは正しいアプローチですか?私は正しい方向に進んでいますか?

前もって感謝します :)

4

1 に答える 1

2

これはそれを解決する1つの方法です-厳密なMVCアプローチに従う場合-ヘルパーはモデル$this->category-> select_cat()を呼び出し、SQLクエリをモデルに配置します。さらに、SQLクエリでは、テキストSQLクエリではなく、アクティブなレコード選択を使用する必要があります。

これを解決するもう1つの方法は、左側のメニュー(つまりカテゴリ)にDIVがあり、右側のメニュー(つまりコンテンツ)にDIVがあるCSSを使用することです。

その後、あなたはすることができます

 $this->load->view('header'); 
 $this->load->view('categories');
 $this->load->view('login'); 
 $this->load->view('footer'); 

次に、カテゴリビュー内

 <div class = "left">
     // show categories here
 </div>

コンテンツビュー内

  <div class = "right">
     // show content here
 </div>
于 2012-04-25T16:43:51.577 に答える