2013-02-25 65 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