在视图中从userid获取用户名

时间:2014-05-04 13:32:28

标签: php codeigniter tableadapter

我从表中获取数据并在我的视图中显示(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逻辑,这不是正确/好的方式。还有其他选择吗?

编辑 - 有两张桌子。 '用户'和'恢复'。 user_id在' resume' table和uid,用户名在' user'表

3 个答案:

答案 0 :(得分:2)

了解Codeigniter助手

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

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

祝你好运

答案 1 :(得分:1)

您可以执行此更改:

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];
}

答案 2 :(得分:0)

Resumemodel一样,您可以/应该有Usermodel,您可以在其中定义函数get_user_name($user_id)。 您可以将此模型与Resumemodel一起加载,并可以在任意位置使用get_user_name

相关问题