Codeigniter noob在这里。
我正在尝试在搜索时显示用户的个人资料,但我需要来自两个单独表格的数据。首先,我将用户名与userid匹配,然后我需要使用该用户ID来从单独的表中访问配置文件信息。我的视图能够使用$ query ['userid']显示用户ID,但我不确定如何将此值传回模型?
控制器:
public function get_profile()
{
$this->form_validation->set_rules('username', 'Username', 'callback_username_check|required');
$username = $this->input->post('username');
if($this->form_validation->run() == FALSE)
{
$this->load->view('header_loggedin');
$this->load->view('fail');
$this->load->view('footer');
}
else
{
$data['query'] = $this->user_model->get_userid($username);
$userid = $query['userid'];
$data['row'] = $this->user_model->return_profile($userid);
$this->load->view('header_loggedin');
$this->load->view('user/user_profile', $data, $row);
$this->load->view('footer');
}
型号:
function get_userid($username)
{
$this->db->select('*');
$this->db->from('user');
$this->db->where('username', $username);
$query = $this->db->get();
return $query->row_array();
}
public function return_profile($userid)
{
$data = array();
$this->db->select('*');
$this->db->from('user_profile');
$this->db->where('userid', $userid);
$query = $this->db->get();
return $query->row_array();
}
查看:
<h3><?php echo $query['username'];?>- Public Profile</h3>
<form id="profile" class="form-horizontal">
<div class="control-group">
<i class="icon-user"></i>
<b>Name:</b> <?php echo $row['name']; ?>
</div>
提前感谢您的帮助。我的错误说$ userid变量在我的控制器中不起作用。如何将该值传递回新模型?
答案 0 :(得分:0)
这看起来:
$data['query'] = $this->user_model->get_userid($username);
$userid = $query['userid'];
$data['row'] = $this->user_model->return_profile($userid);
你可能打算做这样的事情:
$user= $this->user_model->get_userid($username);
$data['row'] = $this->user_model->return_profile($user['userid']);
您正在分配$data['query']
,然后尝试访问名为$query
的变量。这不行。因此,您应该按ID获取用户,然后使用该对象获取您的用户个人资料。
修改
传递用户名以查看:
$data['username'] = $username;
请记住,$data
数组正在传递给此行中的视图:
$this->load->view('user/user_profile', $data);
$data
数组的所有键都将被指定为变量。因此,如果您通过$data['username']
,它将在视图中显示为$username
。