2016-04-02 5 views
1

私はテンプレート作成方法を使用してウェブサイトを開発しようとしています。私は別のファイルを作成しましたが、クエリを実行したいのですが、そのクエリはすべてのテンプレートで利用できるでしょうか?私はこのTemplate in codeigniter

$data['navigation'] = 'templates/main_menu'; 
$this->load->view('main'); 

わかりましたが、今私は、メインのビューで行った、ここで私はそこに、ヘッダーとフッターが含まれているように私は、変数を作成している私は、コントローラに、ここでやっているものをあなたの例を与えることを希望のようにそして動的などのナビゲーションファイルと呼ばれるこの

$this->load->view($navigation); 

わかりましたので、今私はヘッダファイルにクエリを置くので、私は同様にデータベースや他の設定に保存されているアイコンを取得したいされてやろうとしています

<?php $settings = $this->db->get_where('settings', array('id' => 2));\\ This query is just placed above the doctype in the header file and I would like to be called every where ?> 

templates/main_menu.php 
$settings->row()->header_bg_color 

メッセージ:未定義変数:設定としてエラーが発生しています。この設定クエリをmain_menu.phpファイル内に配置すると、どのように動作しているかのように動作し、クエリを再度呼び出す意味がないことを意味します。もし私が何をするのが最善の方法であろうと、モデルの使い方はそれがクエリに使われるのであれば、私はモデル内にこの設定クエリを配置すればどうすればいいですか?アドバイスを受ける

ありがとう

+0

あなたのヘッダファイルのデータを他のビューに処理することはできません。codeigniterはmvc構造体です。データをビューにアクセスするための引数として渡す必要があります。 $ this-> load-> view( '$ navigation'、$ data);あなたがここでできることは、共通の関数ファイルを作成してそこにクエリを書き込んで、それをコントローラに組み込み、そのデータをビューに渡すことです。 – JiteshNK

+0

asnwer内でサンプルコードを提出できますか?codeigniterで新しくなっています。モデル内でビューを呼び出すことができればどうすればいいですか? –

+0

あなたの答えが得られたら幸いです。 – JiteshNK

答えて

0

以下はコントローラのコードです。私はcommon_library.phpファイルを作成しました。このファイルでは、すべてのビューを使用する共通の関数をすべて記述しています。

class Maintenance extends CI_Controller { 
function Maintenance() { 
parent::__construct(); 
// file for all common function 
    include('application/controllers/common/common_library.php'); 
    $this->load->model('maintenance_model'); 
    $this->load->library('session'); 
    $this->load->library('form_validation'); 
} 
function index(){ 
/* 
    * @ desc : default function that loads the maintenance_view. 
    * 
    * 
    */ 
    $data['common_query'] = commonQuery() // define this function in common_library file 
    $data['model_data'] = $this->maintenance_model->projectdetail(); 
    $data['formtitle'] = 'Maintenance List | BMS'; 

    $this->load->view('maintenance_view',$data); 
} 
} 
+0

コントローラでコントローラをロードする必要がある場合は、HMVCを使用する方がよいでしょう。 – user4419336

+0

@ wolfgang1983この行を指している場合は、include( 'application/controllers/common/common_library.php');それが単なる説明であり、これはコントローラーではなく、ただ共通の機能ファイルです。これは、コントローラーフォルダ内の場所です。コントローラー専用にこのファイルを使用します。 – JiteshNK