1

(コントローラー内の)すべての関数に(ヘッダーまたはフッター用の)ビューをロードする方法はありますか?そこにいくつかのif/elseステートメントがあり、必要なときにすべてを変更するのは面倒です。

4

3 に答える 3

6

__constructはい、コントローラーの上部にある関数でビューを読み込むことができます。コンストラクターに関する PHP マニュアルをご覧ください。

function __construct()
{      
        parent::__construct();
        $this->load>-view('your_view');

}

とがサイトのビジュアル部分の定数で必須のコンポーネントになるがheaderfooterヘッダーとフッターの間に別のコンテンツ部分をロードしたい場合は、引数を取る関数を作成できます。

 private function doViews($argument) 
 {


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

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

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


       return NULL;
 }

doViewsファイルが存在することを適切に検証するために、関数内に使用可能なビューの配列が必要になる場合があります。次に、次のようにコントローラーの各メソッドで関数を呼び出すだけです。

$this->doViews('main_content');
于 2012-06-19T17:45:21.833 に答える
0

main_view...をすでに構造を持つマスターページとして作成できます。

main_view.php

$this->load>-view('header');
<?php //get content here
?>
$this->load>-view('footer');

(ステートメントを介して)ヘッダーまたはフッターの何かを変更したい場合は、コンテンツを追加できます。

function __construct()
{      
        parent::__construct();

        $data['footer'] = ($a == 'foo') ? 'footer one' : 'footer two';

        $data_to_main = $this->load->view('template/footer', $data, TRUE);

        $data_to_main = 'others';

        $this->load>-view('main_view', $data_to_main);
}
于 2012-06-19T19:52:05.593 に答える
0

次のようなテンプレート ライブラリを使用してみてください: https://github.com/philsturgeon/codeigniter-template

次に、これをコントローラーに配置するだけです(__constructまたはメソッド内に配置できます)

$this->template->set_partial('header', 'layouts/header');
$this->template->set_partial('footer', 'layouts/footer');
$this->template->set_partial('sidebar', 'layouts/sidebar');

次に、ビューで行うようにデータを送信します。

$this->template->build('create', $this->data);
于 2012-06-19T19:36:43.340 に答える