听起来这个不需要加载视图的功能实际上会阻碍你。我不推荐这种做法。你可以让它推断,如果你不传递一个视图,它会拉一个默认视图,但是你可以覆盖它。您可以使用一种方法创建一个 MY_Controller 来处理您的模板和视图,如果您没有显式声明视图以调用与类同名的目录中的视图和与方法中的方法同名的文件,它将假定uri(http://ellislab.com/codeigniter/user-guide/general/routing.html)。这样,如果您需要显式调用视图或更改任何内容,您只需覆盖该方法或填充属性:
if (count($this->loadViews))
{
foreach ($this->loadViews as $view)
$this->load->view($view);
}else
{
$this->load->view($this->uri->segment(1, 'welcome') . '/' . $this->uri->segment(2, 'index'))
}
您还可以在可能仍然有效的视图中调用视图,这样您就可以随时进入由您的 CI 修改版本调用的默认视图并执行类似的操作
<? if isset($flag): ?>
$this->load->view('partial_view1');
<? else ?>
$this->load->view('partial_view2');
<? endif; ?>
您也可以查看 hooks 来解决这个问题。我有一个项目,其中我的视图和模板通过挂钩和 ob_start 视图来控制,然后擦洗它们,然后输出数据。
http://ellislab.com/codeigniter/user-guide/general/hooks.html
我希望这些解决方案中的任何一个都有帮助。如果您需要其他任何东西,请告诉我。