我从表中获取数据并在我的视图中显示(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'表
答案 0 :(得分:2)
答案 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
。