我从表中获取数据并在我的视图中显示(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
函数。