我有MY_Controller
一个家长班。它只加载视图,将一些数据传递给它们。我的应用程序是一个简单的网站,几乎没有扩展控制器MY_Controller
,它只是设置一些包含需要传递给视图的信息的变量。
我有一个控制器,它与其他控制器略有不同。它需要将更多信息传递给从数据库中获取的视图。在这种情况下我该怎么办?
正如我所看到的,我可以覆盖该控制器中的整个索引函数,但这违反了 DRY 规则,因为唯一的区别是为传递给每个视图的数组设置了更多的值。或者我可以在父控制器中多写几个 LOC,但我想这不是一个好习惯,因为特定的子控制器是唯一需要该代码的控制器。
我已经为此苦苦挣扎了一段时间,如果您能指出正确的方向,或者给我一些如何正确执行此操作的建议,我会很高兴。
我的控制器:
MY_Controller 类扩展 CI_Controller { $样式='', $contents = 数组(), $title=''; //等等 公共函数索引() { $data['style'] = $this->style; $data['title'] = $this->title; $this->load->view('header',$data); foreach($this->contents as $row) { $this->load->view($row,$data); } $this->load->view('footer',$data); } }
画廊控制器到目前为止
类 Gallery 扩展 MY_Controller { $style = 'galeria.css', $title = '画廊', $contents = array('content_gallery'); // 如果 $gallery 为 null,则仅显示列表中的所有画廊, //else 在该列表下方显示所选画廊及其内容 公共函数索引($gallery = NULL) { $data['画廊'] = $this->gallery_model->get_all_active_galleries(); //名称和ID 如果($画廊!= NULL) { $data['name'] = ... $data['描述'] = ... ETC... } } }