2014-04-01 48 views
1

我有一個網址獲取控制器的指標函數URI段 - 笨

www.xample.com/app/pay/11

,其中工資是我的控制器。 控制器被定義爲

class Pay extends CI_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->library('tank_auth'); 
     $this->load->model('users'); 
    } 

    function index() 
    { 
     //How can I get 11 from uri ? 
    } 
} 

Im不使用使用索引function.How我能得到值11的任何附加功能here.Im?

回答

3

您可以使用_remap()爲發送到此類的任何內容運行index()函數。

class Pay extends CI_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->library('tank_auth'); 
     $this->load->model('users'); 
    } 

    function _remap($method, $params=array()) 
    { 
     $methodToCall = method_exists($this, $method) ? $method : 'index'; 
     return call_user_func_array(array($this, $methodToCall), $params); 
    } 

    function index($val) 
    { 
     echo $val; 
    } 
} 

現在,當你去www.xample.com/app/pay/11index()將被調用。

2

您可以使用URI段班笨的.. 它像$this->uri->segment(n)

在你的情況,你需要得到第三部分。

因此,它將在爲─配置/ autoload.php

$autoload['helper'] = array('url'); 

或負載URL助手在所需的控制器或其方法

$this->load->helper('url'); 

echo $this->uri->segment(3); 
+0

這給出了一個404錯誤,因爲沒有FUNCTION 「11」 在class.Codeigniter對待'11 '作爲函數 – Piya

+0

首先加載url助手。 – sunny

+0

我想更多地描述你,但現在需要離開,希望我的回答對你有幫助。只要看看codeigniter用戶指南,你可以得到關於codeigniter的一切 – sunny

0

啓用URL輔助然後在控制器中使用以下內容

$this->uri->segment(3); 
1

http://localhost/abc/sellers/YWRtaW4=

http://localhost/abc/sellers/follow/u/1

function _remap($method, $params=array()) 
    { 
     $method_exists = method_exists($this, $method); 
     $methodToCall = $method_exists ? $method : 'index'; 
     $this->$methodToCall($method_exists ? $params : $method); 
    } 


function index($username) { 
     echo $username; 
} 

function follow($param){ 
    print_r($param); 
} 

嘗試使用此功能..