CodeIgniter にヘッダーとフッターをシームレスに組み込む
すべてのコントローラーでヘッダーとフッターのビューを繰り返しロードする必要があるのは、面倒な作業になる場合があります。これに対処するために、このプロセスを自動化し、これらの共通要素を柔軟にカスタマイズできるソリューションを検討してみましょう。
CodeIgniter では、これを実現するためにカスタム ローダー クラスを作成できます。 MY_Loader.php の template() メソッドをオーバーライドすることで、ヘッダー、本文、およびフッター ビューを組み合わせる関数を定義できます。
<code class="php">// application/core/MY_Loader.php class MY_Loader extends CI_Loader { public function template($template_name, $vars = array(), $return = FALSE) { $content = $this->view('templates/header', $vars, $return); $content .= $this->view($template_name, $vars, $return); $content .= $this->view('templates/footer', $vars, $return); if ($return) { return $content; } } }</code>
CodeIgniter 3.x の場合、変更された template() メソッドは次のようになります。追加の elseif ステートメントを含めます:
<code class="php">// application/core/MY_Loader.php class MY_Loader extends CI_Loader { public function template($template_name, $vars = array(), $return = FALSE) { if($return): $content = $this->view('templates/header', $vars, $return); $content .= $this->view($template_name, $vars, $return); $content .= $this->view('templates/footer', $vars, $return); return $content; elseif: $this->view('templates/header', $vars); $this->view($template_name, $vars); $this->view('templates/footer', $vars); endif; } }</code>
このカスタム ローダーを使用すると、コントローラーはヘッダーとフッターのビューを気にせずに、必要な本文コンテンツを単純にロードできます:
<code class="php">// controller $this->load->template('body');</code>
このアプローチは柔軟性を提供します。コントローラーを煩雑にすることなく、ヘッダーとフッターのコンテンツを簡単にカスタマイズできます。
以上がCodeIgniter でヘッダーとフッターの組み込みを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。