从视图中的userid获取用户名



我从表中获取数据并在我的视图中显示(codeigniter)。在视图中,我有用户id,这当然是一个整数。我需要从用户id获取用户名。我将如何从id获得用户名?

模型代码如下。

class Resumemodel extends CI_Model
{
   function getallresume()
  {
     $query = $this->db->get('resume');
        return $query;
  }
}

控制器代码如下。

class Resumec extends CI_Controller 
{
  function resumelist()
  {
    $this->load->model('Resumemodel');
    $query = $this->Resumemodel->getallresume();
    $dt['main_content'] = 'admin/resumeinfo';   
    $dt['query'] = $query;
    $this->load->view('admin/includes/template.php',$dt);
  }
 }

视图在下面(只需要我放在这里的部分)

foreach ($query->result() as $row)
{
   $id = $row->user_id;
   // other table data.
 }

那么从用户id我将如何获得用户名没有连接查询?

PS 请提供无连接查询的答案。它将与连接查询工作,但我正在寻找替代方案。

我试过了-

 $objResume = new resumec();  //resumec is the controller
 $username = $objResume->get_username($id); // get_username is function to get username.
 echo $username;

这是工作,但这是不正确的/好的方式,根据MVC逻辑。那么,还有其他选择吗?

edit - 2表。"用户"one_answers"简历"。User_id在'resume'表中,uid, username在'user'表中

阅读Codeigniter帮助器

只需扩展帮助器以包含通过id获取用户名的函数。

要获得更多知识,只需访问Codeigniter helper

好运

你可以这样做:

class Resumec extends CI_Controller 
{
  function resumelist()
  {
    $this->load->model('Resumemodel');
    $query = $this->Resumemodel->getallresume();
    $usernames = array();
    foreach ($query->result() as $row)
    {
      $usernames[$row->user_id] = $this->get_username($row->user_id);
    }
    $dt['main_content'] = 'admin/resumeinfo';
    $dt['query'] = $query;
    $dt['usernames'] = $usernames;
    $this->load->view('admin/includes/template.php',$dt);
  }
 }

因此,在视图中你只需要这样做:

foreach ($query->result() as $row)
{
   $id = $row->user_id;
   $username = $usernames[$row->user_id];
}

Resumemodel你可能/应该有Usermodel在那里你可以定义功能get_user_name($user_id)。您可以将此模型与Resumemodel一起加载,并可以在任何您想要的地方使用get_user_name函数。

最新更新