我想更改读取的网址
http://my_blog.com/user/getdetails?userid=5
到
用户是控制器, getdetails 是方法, 5 是用户ID
我怎样才能实现这个目标?
我做了以下方式
我将 getdetails 更改为索引,以便我不需要再次提及 getdetails
class user extends CI_Controller {
function index()
{
$userid = $_GET['userid'];
$this->load->model('data_model');
$result=$this->data_model->data($userid);
}
}
改变后现在看起来像 http://my_blog.com/user?userid=5
更新
是否可以在route.php中执行以下操作
$route['bloop/(:num)'] = "foldername/bloop/index/$1";
foldername是我服务器上的某个文件夹
答案 0 :(得分:1)
查看有关URI路由的文档:
http://ellislab.com/codeigniter/user-guide/general/routing.html
你必须做两件事:
首先,在application/config/routes.php
中定义路线:
$route['user/(:num)'] = "user/index/$1";
并按照 here :
的说明为您的操作方法提供一个参数class user extends CI_Controller {
function index($id)
{
$userid = $id;
$this->load->model('data_model');
$result=$this->data_model->data($userid);
}
}
答案 1 :(得分:1)
class user extends CI_Controller {
function index($id)
{
$userid = $id;
$this->load->model('data_model');
$result=$this->data_model->data($userid);
}
}
上面的代码使网址看起来像http://my_blog.com/user/5
但你不需要总是在索引函数中这样做,你可以像下面那样做
class user extends CI_Controller {
function index($id)
{
$userid = $id;
//
//do some other things
//
$this->getdetails($userid); //default handle
}
function getdetails ($userid )
{
$this->load->model('data_model');
$result=$this->data_model->data($userid);
}
}
网址可以是两者 http://my_blog.com/user/5和http://my_blog.com/user/getdetails/5