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