我目前正在使用codeigniter开展电子商务。我已经完成了几乎所有的视图,现在我开始编码(控制器和模型)。 对于登录,我的ideia在"顶视图"。
上设置其形式问题是我必须打电话给&#34;顶视图&#34;在每个控制器中,每次调用它时都配置form_validation。 有一个正确的方法来处理它?</ p>
答案 0 :(得分:0)
有很多不同的方法可以解决如何处理在许多不同页面上加载的常见html片段的问题。
一种解决方案是为每个控制器添加一个辅助函数,如下面显示的render_page()
函数。 [注意:任何要加载的视图中所需的任何动态数据都应通过$ data参数传递。]
protected function render_page($main_view, $data=null){
$this->load->view('top_view', $data);
$this->load->view('menu_view');
if(isset($main_view)){
$this->load->view($main_view);
}
$this->load->view('footer_view');
}
在同一个控制器的其他地方
public function index(){
//do stuff including setting $data as needed
$this->render_page('some_view', $data);
}
此方法的问题是您需要在每个控制器中定义render_page()
。要解决此问题,请在以类似方式工作的自定义库(类)中使用render_page()
想法。然后,您自动加载该库并在任何所需的控制器中使用其render_page()
方法。
如果您创建了这样的库并将其命名为Viewmaster
,那么您将在控制器中使用它,如下所示(假设它是自动加载的)
public function index(){
//do stuff including setting $data as needed
$this->viewmaster->render_page("some_view", $data);
}
我会留给你找出Viewmaster
类的实现细节。