【问题标题】:Model to Controller back to Model? Codeigniter模型到控制器回到模型?代码点火器
【发布时间】:2013-05-08 01:25:03
【问题描述】:

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

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    这看起来不对:

    $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 的形式出现。

    【讨论】:

    • 谢谢凯,这行得通。我还需要将原始用户名值传递给我的视图,我该如何完成?
    • 有道理!谢谢!顺便说一句,如果那个羊毛网站真的是你的,我喜欢它。
    • 哈哈。是的。我在一个周末建立的愚蠢想法。它也赚钱。谁会知道?
    猜你喜欢
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多