У меня есть 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);