Получить сегмент uri в функции индекса контроллера – Codeigniter

У меня есть URL

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

Я не использую никакой дополнительной функции здесь. Я использую индексную функцию. Как я могу получить значение 11?

Вы можете использовать _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/11 , www.xample.com/app/pay/11 index() .

Вы можете использовать класс сегмента URI codeigniter .. он как $this->uri->segment(n)

В вашем случае вам нужно получить третий сегмент.

Следовательно, это будет –

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

HTTP: // локальный / а / продавцы / YWRtaW4 =

HTTP: // локальный / а / продавцы / следовать / 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); } 

Попытайтесь использовать эту функцию.

включить помощник URL в config / autoload.php

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

или загрузить хелпер URL-адреса в желаемом контроллере или его методе

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

а затем использовать ниже в контроллере

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