附加URI段

时间:2012-12-08 15:23:14

标签: php codeigniter

我喜欢SO处理URI的方式。我想模仿CI中的相同行为。我有一个名为Users的控制器,索引方法应该采用一个参数,即用户ID。我在数据库中搜索与该用户ID关联的用户名。考虑user:1username:Santa Claus,如何将用户名附加到URI,使其看起来像http://foo.com/users/1/santa-claus

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Users extends CI_Controller {

function index($uID = 0) {
    if ($uID > 0) {
        $this->load->model('users_model');
        $uname = $this->users_model->_getUsername($uID);

        #append somehow..       

    } else {
        echo('load all users');
    }
}

}

为了清楚起见,我正在努力实现这一目标:

https://stackoverflow.com/a/11041075/704015

2 个答案:

答案 0 :(得分:1)

应用/配置/ routes.php文件

$route['users/(:num)/(:any)'] = 'users/index/$1';

控制器

    function index($uID = 0) {
         .....
         $uname = strtolower(str_replace(" ", "-", $uname));

         header("Location: ".base_url()."user/".$uID."/".$uname);

请包含条件做其他事情已经存在用户名已经存在以避免循环。

答案 1 :(得分:0)

这在你的config / routes.php

 $route['users/(:num)/(:any)'] = 'users/$1/$2';

这在你的控制器中

public function users($id,$username = FALSE)
{