2011-08-09 98 views
8

我試圖將參數傳遞給在笨控制,但我越來越找不到404頁面錯誤,我不明白這一點,我做了什麼指導說:http://ellislab.com/codeigniter/user_guide/general/controllers.html#passinguriCodeIgniter:將參數傳遞給控制器​​時找不到頁面?

當我刪除了PARAMS在索引功能,只是訪問控制器一切工作正常,但我不能一個值傳遞給它......

下面是代碼,我試圖發送一個PARAM方式:http://mysite/123

<?php 
class Main extends Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

如何從codeigniter獲取有關此錯誤的更多信息?

謝謝。

回答

4

該URL必須是http://mysite/Main/index/123

CodeIgniter的URL是http://<url>/<Controller>/<Method>/<params>

0

退房的/application/config/routes.php文件,這樣設置默認控制器主:

$route['default_controller'] = 'main'; 
0

//對於CI 2.0.2 //main.php

<?php 
class Main extends CI_Controller { 

    function index($username) { 

     echo $username; 

    } 

} 
?> 

//應用/配置/ routes.php文件 $路線[ 'default_controller'] = '主';

再嘗試這種在URL :: http://mysite/index.php/main/index/123

希望這對你的作品

+0

我想要顯示用戶名123用戶的配置文件詳細信息...並且我的url必須看起來像codeigniter中的http:// mysite/123。 –

0

據我所知,數據傳遞只在有兩個以上的URI段。

試試這個,

<?php 
class Main extends Controller { 

    function index() { 
     $username = $this->uri->segment(3); 
     echo $username; 
    } 
} 
?> 

然後去http://mysite/index.php/main/index/123

+0

我想顯示用戶名123的用戶的個人資料詳細信息...並且我的網址在codeigniter中必須看起來像mysite/123。 –

0

添加此功能到您的控制。如果方法沒有,這將有助於獲得傳遞參數到索引函數。

function _remap($method) 
    { 
     $param_offset = 2; 

     // Default to index 
     if (! method_exists($this, $method)) 
     { 
     // We need one more param 
     $param_offset = 1; 
     $method = 'index'; 
     } 

     // Since all we get is $method, load up everything else in the URI 
     $params = array_slice($this->uri->rsegment_array(), $param_offset); 

     // Call the determined method with all params 
     call_user_func_array(array($this, $method), $params); 
    }