(コントローラー内の)すべての関数に(ヘッダーまたはフッター用の)ビューをロードする方法はありますか?そこにいくつかのif/else
ステートメントがあり、必要なときにすべてを変更するのは面倒です。
質問する
1907 次
3 に答える
6
__construct
はい、コントローラーの上部にある関数でビューを読み込むことができます。コンストラクターに関する PHP マニュアルをご覧ください。
function __construct()
{
parent::__construct();
$this->load>-view('your_view');
}
とがサイトのビジュアル部分の定数で必須のコンポーネントになるがheader
、footer
ヘッダーとフッターの間に別のコンテンツ部分をロードしたい場合は、引数を取る関数を作成できます。
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 に答える