我有一个网址
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?
答案 0 :(得分: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/11
时,系统会调用index()
。
答案 1 :(得分:2)
您可以使用codeigniter的URI Segment类。
它就像$this->uri->segment(n)
在您的情况下,您需要获得第3段。
因此,它将是 -
echo $this->uri->segment(3);
答案 2 :(得分: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);
}
尝试使用此功能..
答案 3 :(得分:0)
在config / autoload.php中启用url helper
$autoload['helper'] = array('url');
或在所需的控制器或其方法中加载url helper
$this->load->helper('url');
然后在控制器
中使用以下内容$this->uri->segment(3);