如何在CodeIgniter中的视图上定位控制器功能的数据输出

时间:2014-03-29 20:02:26

标签: php codeigniter

由于我是MVC的初学者,我想尝试一下CodeIgniter,学习了PHP中MVC模式的基础知识,但是有一个我无法解决的问题。

我的“帮助”控制器中有一个“参考”功能,需要在视图中的特定位置输出。但是,函数的数据实际输出到真正的顶部。

它给了我什么: http://gyazo.com/1a17e9208c42f4b5d01e86ddad9a6d18

我需要它在左栏。

我的帮助控制器:

Class Help extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->view('help_reference_head_view');
    }

    function reference($perm_reference) {
        $this->load->model('help_model');
        $this->help_model->getReference($perm_reference);
    }
}

我的help_model:

Class help_model extends CI_Model {

    function getReference($perm_reference) {
        $this->db->select('*');
        $this->db->from('help');
        $this->db->where('perm_reference', $perm_reference);

        $q = $this->db->get();
        if($q->num_rows() == 1) {
            foreach ($q->result() as $key) {
                echo '<h2> ' . $key->perm_reference . '</h2>';
                echo $key->desc;
                $this->load->view('help_reference_footer_view');
            }
        } else {
            return false;
        }
    }
}

help_reference_head_view文件(数据输出应该在col-md-9 div之后的文件的真正底部): http://gyazo.com/60d52006d63c93f1a96613ce46db2024

1 个答案:

答案 0 :(得分:0)

我可能会创建一个主模板,并根据控制器响应加载多个视图。

控制器

class Helper extends CI_Controller
{
    public $template;

    public function __construct()
    {
        $this->template = 'layout/default'; //views/layout/default

        $this->load->model('help_model');
    }

    public function index()
    {
        $reference = $this->help_model->getRef( $permissions );

        if(!$reference){
            return show_404();
        }

        return $this->load->view($this->template, array(
            'view'  =>   'help/index',
            'sidebar'  =>  $this->load->view('sidebar/index', array( 'data' => $reference), true)
        ));
    }
}

模型

class Helper_Model extends CI_Model
{
    public function getRef( $permissions )
    {
        $this->db->select() // prolly don't need this as it will return * by default
                 ->from('help')
                 ->where('perm_reference', $permissions);

        $responce = $this->db->get();

        return ($responce->num_rows() > 0 ) ? $responce->result : false;
    }
}

主视图(视图/布局/默认)

<section>
    <?php echo $this->load->view($view); ?>
</section>

<aside role="sidebar">
    <?php if($sidebar) : ?>
    <div class=help>
        <?php echo $this->load->view($sidebar); ?>
    </div>
     <?php endif; ?>
    <div>
        //default sidebar stuff
    </div>
</aside>