问题描述
|
我有一个“标准”页面布局。
页眉,页脚,左侧的主要内容块和右侧的侧边栏。
现在,这一切都很好,只是在每个控制器中都复制了侧边栏,但是需要一个控制器才能起作用。有时,用户可能已登录,因此会有一些名称不正确的情况,诸如此类。此外,这里还将有一个购物车,它将从MysqL数据库运行。
我不想在每个控制器中复制此代码。
我将如何制作一个控制器来构建侧边栏,加载视图以及随后可以“包含”(如我将包含一个视图)的所有内容到页面中。
我可以预见可以实例化和“添加到视图”的“ 0”类/对象的创建。
我应该怎么做?
谢谢
解决方法
听起来像Modular Extensions-HMVC对您来说是一个很好的解决方案。我链接的Wiki包含示例。
,过去在Codeigniter中遇到此问题时,我已经构建了一个钩子,该钩子可以加载post_controller_constructor,执行一些逻辑,然后加载sidebar.php视图。这相当简单,不需要太多的努力。
唯一的问题是,如果您不使用模板,则可能会影响您调用视图的顺序。例如,如果您习惯于:
public function index()
{
$this->load->view(\"header.php\");
$this->load->view(\"my_awesome_page.php\",$this->data);
$this->load->view(\"footer.php\");
}
然后,您必须对其进行更改,以注意侧栏将是最后调用的内容,并将页脚放在其中。通常,我会让Hook在CI对象中检查变量,以查看是否需要侧边栏,如果不是,则无论如何都要吐出footer.php。
我对您正在寻找的钩子相当有信心。
,我最终创建了一个图书馆,该图书馆可以满足我的需求。这很好。可以像简单的控制器一样有效地制作图书馆,并将其包含在任何位置。 :)