在 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中文网其他相关文章!