主视图中的Codeigniter视图

时间:2013-02-25 08:22:57

标签: php codeigniter-url

我正在使用codeigniter这样的控制器在主视图中加载视图

控制器

public function product_modules($domain_id)
{           
    $this->load->model('/admin/Model_products', '', TRUE);      
    $data['product_boxes'] = $this->Model_products->getProducBoxes($domain_id);
    $this->load->view('admin/dashboard',$data, null, true);

}

主视图

 $this->view($_SERVER['REQUEST_URI']);

但是如果请求的uri包含查询字符串,则视图不会被加载,我得到一个类型Unable to load the requested file: /admin/product_modules/1.php。动态调用视图的最佳解决方法是什么?

1 个答案:

答案 0 :(得分:1)

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Example extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
    }

    public function _remap($method, $params = array())
    {
        // dynamically assign the method with parameters support
        $this->view($method, $params);
    }

    public function product_modules($domain_id)
    {
        $this->load->model('/admin/Model_products', '', TRUE);
        $data['product_boxes'] = $this->Model_products->getProducBoxes($domain_id);
        $this->load->view('admin/dashboard', $data, null, true);
    }

    public function view($method, $param1 = '', $param2 = '')
    {
        // params you can sent to models
        $data['users'] = $this->model_name->get_user($param1);

        // or views
        $data['myvar'] = $param2;

        // and load the view dynamically
        $this->load->view($method, $data);
    }

}

所以

如果网址为http://example/controller/method,则上述内容将搜索method.php视图文件,

如果网址为http://example/controller/product_modules/1,则会搜索product_modules.php视图文件。

希望这会有所帮助。谢谢!