模型到控制器回模型?笨

时间:2013-05-08 01:25:03

标签: codeigniter

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变量在我的控制器中不起作用。如何将该值传递回新模型?

1 个答案:

答案 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