2013-02-25 82 views
1

我加载在主视图的观点从控制器笨这样笨意见

控制器

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
<?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); 
    } 

} 

所以

如果URL是http://example/controller/method然后将上面搜索method.php视图文件,

如果URL是http://example/controller/product_modules/1那么搜索product_modules.php视图文件。

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

+0

非常感谢,让我试一试 – fefe 2013-02-25 08:35:41

+0

@fefe它的工作形式,我可以测试... – 2013-02-25 08:39:20

+0

@fefe,删除了不需要的几行。 – 2013-02-25 08:50:37