2013-07-01 32 views
0

我有這樣的控制器:笨參數 - 無法加載請求的文件

class Work extends MY_Controller { 
    public function assign($id) { 
     //validation checks 
     if ($this->form_validation->run() === FALSE) { 
      $this->load->view("work/assign/" . $id); 
     } else { 
      //success 
     } 
    } 
} 

除了在views/work/assign.php一個觀點我也有以下途徑: $route['work/assign/(:any)'] = 'work/assign/$1';

當我去/work/assign/1在我瀏覽器,我得到這個錯誤:Unable to load the requested file: work/assign/1.php我想要它使用參數渲染頁面1

+0

嘗試使用$ this-> load-> view(「work/assign /」)。 $ id,'',true);看看它是否適用於你..這個想法來自「返回視圖爲數據」的主題在以下鏈接http://ellislab.com/codeigniter/user-guide/general/views.html – wakqasahmed

回答

0

你所得到的錯誤是由於在view調用錯誤的參數

$this->load->view("work/assign/" . $id);自上次尾隨斜線告訴CI,這是.php並在最後結尾的斜線你$id=1所以它會搜索加載1.php加載view,並通過您的ID查看正確的方法是使其中包含要在視圖來顯示,然後調用視圖,並通過CI傳遞數組,數組鍵將轉換爲變量數據的數組

class Work extends MY_Controller { 
    public function assign($id) { 
     //validation checks 
     if ($this->form_validation->run() === FALSE) { 
     $data['id']=$id; 
      $this->load->view("work/assign" ,$data); 
     } else { 
      //success 
     } 
    } 
} 

assign.php只是回聲$id,你會得到想要的ID

1

加載程序不關心你的路線,除此之外:

$route['work/assign/(:any)'] = 'work/assign/$1'; 

......什麼也沒做。此代碼:

$this->load->view("work/assign/" . $id); 

...將始終在APPPATH/views/work/assign/$id.php中查找我認爲不存在的文件。

您要使用的第二放慢參數在view()加載變量,例如:

$this->load->view("work/assign", array('id' => $id)); 

這將加載視圖文件work/assign.php和導入變量$id