【问题标题】:How can i allow a user to edit their own account details?如何允许用户编辑自己的帐户详细信息?
【发布时间】:2015-10-09 11:48:12
【问题描述】:

我将如何允许用户编辑他们自己的帐户详细信息。当他们登录时,会使用他们的用户名创建一个会话。如何查询将会话与数据库中的用户匹配的数据库?我对在哪里做,控制器或模型感到困惑?这是我的代码。这并不多,因为我真的不知道从哪里开始:

控制器:

public function myaccount()
 {
     if($this->session->userdata('logged_in'))
{

$session_data = $this->session->userdata('logged_in');
$data['id'] = $session_data['id'];
$this->myaccount_model->get_details($data);
$this->load->model('myaccount_model');
$this->load->view('head');
$this->load->view('myaccount', $data);
$this->load->view('footer');

}
else
{
 redirect('login', 'refresh');
}
 }

型号:

<?php
class Myaccount_model extends CI_Model {

public function __construct()
{
    $this->load->database();
}

public function get_details()
{
$query = $this->db->get_where('users', array('id' => $id));
return $query->row_array();

}
}

我收到错误消息:未定义属性:Navigate::$myaccount_model。

我知道这与我如何将用户 ID 从控制器传递到模型有关?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    你需要先加载模型,然后才能使用它的功能

    $this->myaccount_model->get_details($data);
    $this->load->model('myaccount_model');
    

    $this->load->model('myaccount_model');
    $this->myaccount_model->get_details($session_data['id']);
    

    编辑:

    如果您想从特定 id(会话 id)中获取详细信息, 在模型中的 get_details($id) 函数中添加一个参数。

    例如:

    public function get_details($id){
       $query = $this->db->get_where('users', array('id' => $id), 1);
       return $query->row_array();
    }
    

    然后像这样在你的控制器中调用它:

    $result = $this-&gt;myaccount_model-&gt;get_details($session_data['id']);

    现在将这个$result 传递给您的视图。

    【讨论】:

    • 谢谢伙计。我已经在视图中转储了 $id 并且它正在识别它。但是,我需要将 $data (userid 所以它的 $id) 传递给模型,以便我可以查询数据库?这令人困惑
    • 我编辑了我的答案,看看。虽然我不确定你的意思。
    【解决方案2】:

    大概您在会话中设置了一个用户 ID,以便您可以使用

    $id = $this->session->get_userdata('id');
    return $this->db->get_where('users', array('id' => $id));
    

    【讨论】:

      【解决方案3】:
       $data['username'] = $session_data['username'];
      

      您传递的是用户 ID,而不是用户名

      $data['userid'] = $session_data['userid'];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-14
        • 1970-01-01
        • 2012-11-09
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        • 2011-10-01
        • 1970-01-01
        相关资源
        最近更新 更多