2

アプリケーションにヘッダーをインクルードしようとしています。コントローラーを作成し、データ変数をレンダリングするsite関数を定義しました。headerviews/header.php

ただし、myUrl/site/headerすべての変数にアクセスしようとすると正常に動作しますが、サイトコントローラーで別の関数を作成してそれindexに含めるviews/headersite/index、ヘッダーに未定義の変数通知が表示されます。

何か案が??

class site extends CI_Controller { function header() {

$data =array('name'=>'foo');

$this->load->view('includes/header',$data); }

function index() {

$this->load->view('includes/index'); } }

INDEX.PHP

$this->load->view('includes/header');

4

3 に答える 3

2

Html ページの個別のセグメント (ヘッダー、フッター、ナビゲーション バーなど) を別のビュー ファイルに保持する場合は、次の方法でこれを行う方がよいと思います。

ヘッダーにしたいコンテンツをファイル名 header.php (またはその他の好きなもの) に入れ、views フォルダーに保存します。header.php の内容が

<html>
    <head>
        <title>This is title</title>
    </head>
    <body>

footer.php という名前の別のファイルには、次のものが含まれています。

</body>
</html>

そのページのコンテンツを保持するビューフォルダー内の別のファイル my_view.php。サンプル内容は

<?php $this->load->view('header');?>
<h1>Welcome</h1>
<p>Main contents here</p>
<?php $this->load->view('footer');?>

ここで、コントローラ関数から my_view をロードすると、HTML ページ全体がレンダリングされます。

function my_controller_function(){
    $this->load->view('my_view');
}
于 2012-06-06T10:48:27.890 に答える
0

これは正しい方法ではありません。基本的に、ビュー内にビューをロードしないことを除いて、Rafiqunnabi のように行います。

例:

 public function index()
{
  $this->load->view('include/header');
  $this->load->view('home');
  $this->load->view('include/footer');
}
于 2012-06-06T11:49:55.753 に答える
0

解決しました!!!!

新しいヘルパーを作成し、そこからデータを返し、load->view('includes/header',$data); を使用してビューにデータを渡しました。

于 2012-06-06T12:39:36.187 に答える