0

Codeigniter 菜鸟在这里。

我试图在搜索时显示用户的个人资料,但我需要来自两个单独表的数据。首先,我将用户名与用户 ID 匹配,然后我需要使用该用户 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 变量在我的控制器中不起作用。如何将该值传递回新模型?

4

1 回答 1

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

于 2013-05-08T01:31:24.673 回答