如何允许用户编辑自己的帐户详细信息?

时间:2014-12-22 12:37:28

标签: php codeigniter

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

控制器:

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();

}
}

我收到错误消息:Undefined property:Navigate :: $ myaccount_model。

我知道如何将用户ID从控制器传递给模型?

3 个答案:

答案 0 :(得分:0)

据推测,您在会话中设置了用户ID,因此您可以使用

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

答案 1 :(得分:0)

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

而不是用户名,您传递了用户标识

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

答案 2 :(得分:0)

您需要在使用其功能

之前加载模型
$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->myaccount_model->get_details($session_data['id']);

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