2012-04-25 6 views
1

私はCIがとても新しいです。 :)CodeIgniter - すべてのビューに共通のdbからデータを選択

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

$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']) ; 
} 
?> 

は、これは正しいアプローチですか? 正しい軌道にいるのですか?

それを解決する一つの方法です事前に感謝:)

答えて

2

- あなたは、厳密なMVCのアプローチに従う場合が - ヘルパーは、モデルを呼ぶだろうます$ this-> category-> select_cat()、およびputモデル内のSQLクエリ。さらに、SQL照会は、テキストSQL照会ではなく、アクティブなレコード選択を使用する必要があります。

これを解決する別の方法は、左メニュー(カテゴリ)に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> 
+0

の内側にこれは適切な方法です。 –

+0

ありがとうございました:) –

関連する問題