1

我想使用一个自定义的加载->视图,一旦创建就会为页面加载一组视图。它将具有与 $this->load->view() 相同的功能,但也可以预加载其他视图。我将如何写这个并让它工作?谢谢

<?php

class MY_Loader extends CI_Loader
{
    function __construct()
    {
        parent::__construct();
    }

    function admin_view($load_page, $vars=array())
    {
        $this->load->view('admin/header');
        $this->load->view($load_page);
        $this->load->view('admin/footer');
    }

    function members_view()
    {
        //same purpose as admin view
    }

    function public_view()
    {
        //same purpose as admin view
    }


}
4

2 回答 2

0

这看起来不错,除了您不需要调用$this->load,因为您已经“进入” CI_Loader(通过您的扩展程序),所以您可以尝试:

function admin_view($load_page, $vars=array())
{
    $this->view('admin/header');
    $this->view($load_page);
    $this->view('admin/footer');
}

这意味着您可以访问 the 的view方法,CI_Loader因为您已经用您的类扩展了它。

于 2013-02-11T04:02:11.523 回答
0

我曾经在views/_includes中有一个template.php,如下所示:

<?php
    $this->load->view('_includes/header');
    $this->load->view($view);
    $this->load->view('_includes/footer');

所以我要加载的 $view 是通过控制器传递的。例如:

class News extends MY_Controller {
    public function index()
    {
        $data['view'] = 'admin/news/index';
        $data['results'] = $this->news_model->get_all);
        $this->load->view('admin/_includes/template', $data);
    }
于 2013-02-11T08:59:26.173 回答