控制器内部的控制器...也许我错了

问题描述

| 我有一个“标准”页面布局。 页眉,页脚,左侧的主要内容块和右侧的侧边栏。 现在,这一切都很好,只是在每个控制器中都复制了侧边栏,但是需要一个控制器才能起作用。有时,用户可能已登录,因此会有一些名称不正确的情况,诸如此类。此外,这里还将有一个购物车,它将从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。 我对您正在寻找的钩子相当有信心。     ,我最终创建了一个图书馆,该图书馆可以满足我的需求。这很好。可以像简单的控制器一样有效地制作图书馆,并将其包含在任何位置。 :)     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...