如何更改url以使其在codeIgniter中看起来像干净的Url

时间:2013-11-18 13:08:32

标签: php codeigniter

我想更改读取的网址

http://my_blog.com/user/getdetails?userid=5

http://my_blog.com/user/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是我服务器上的某个文件夹

2 个答案:

答案 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/5http://my_blog.com/user/getdetails/5