【问题标题】:Codeigniter PHP url segments for users profile用户配置文件的 Codeigniter PHP url 段
【发布时间】:2026-01-12 09:40:02
【问题描述】:

我需要它,以便当我输入 domain.com/user/1 时,它会作为变量被拉入,然后可用于获取正确的数据库值。现在该变量是使用 domain.com/user 手动设置的。我如何设置段然后使 get() 那个数字。我只使用用户名 url 作为数字,所以不,名称只是 domain.com/user/1 , domain.com/user/487 等

【问题讨论】:

  • 这里有一个代码示例会很好,如果我正确理解您的问题,具有名为 users 的函数的控制器类将满足您的需求。所以你的 URL 看起来像这样:控制器/用户/(id)。你有一个函数来接收控制器类中的 URL,比如 'function user($id){ }' 但是我不确定我理解你的问题是什么,所以一些代码会很有用。

标签: php mysql codeigniter


【解决方案1】:

看一下URI路由:http://codeigniter.com/user_guide/general/routing.html

类似:

$route['user/(:num)'] = "user/user_lookup/$1";

在你的 config/routes.php 文件中可能会做你想做的事。

【讨论】:

  • @ThomasReggi 你在“还有什么”下是什么意思? uri 重新路由是您在问题中起草的问题的最佳解决方案。
  • 比如,还有什么其他代码?我把它放进去……现在呢?大声笑
【解决方案2】:

据我了解,当您在控制器中使用这样的 URI 调用它时,您可以将片段传递给您的模型

$this->usermode->get_user($this->uri->segment(3));

并像参数一样在模型中接收它

function get_user($user){
$this->db->where('userid', $user);
$query= $this->db->get('user');

if($query){
return $query->result();
}else{
return false;
}
}

我希望我能正确理解你想要做什么

【讨论】:

    【解决方案3】:

    在你的控制器中你可以有一个用户函数:

    function user($id){
        $this->db->where('userid',$id);
        $q = $this->db->get('user');
        $data['userdata']=$q;
        $this->load->view('user_view',$data);
    }
    

    这将在数据库中的user表中查询url中传递的id,并将结果发送到user_view视图。例如http://site.com/user/5 将查询与userid 5 匹配的用户数据。

    【讨论】: