我试图允许用户编辑自己的详细信息。这是我的代码: 控制器:
public function myaccount() {
if($this->session->userdata('logged_in')) {
$session_data = $this->session->userdata('logged_in');
$data['id'] = $session_data['id'];
$this->load->model('myaccount_model');
$this->myaccount_model->get_details($data);
$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($data) {
$query = $this->db->get_where('users', array('id' => $id));
return $query->row_array();
}
}
它出现了错误:我的account_model上的未定义变量$ id。会话在控制器上创建为:
$data['id'] = $session_data['id'];
那么如何将数据从控制器传递到模型,以便我可以查询数据库并选择与会话ID匹配的用户?感谢
答案 0 :(得分:1)
使用$data['id']
,因为您在控制器中设置了值
public function get_details($data)
{
$query = $this->db->get_where('users', array('id' => $data['id']));
return $query->row_array();
}
为了在视图中回显用户数据,我认为您可以这样做:
$userData = $this->myaccount_model->get_details($data);
$this->load->view('myaccount', $userData);
答案 1 :(得分:0)
你的模型$ id里面没有变量获取详情功能。
尝试像这样改变你的getdetails函数
public function get_details($data)
{
$query = $this->db->get_where('users', array('id' => $data['id']));
return $query->row_array();
}
或者您只能从控制器传递id而不是$ data这样的数据
$this->myaccount_model->get_details($session_data['id']);
现在您可以像这样更改模型
public function get_details($id)
{
$query = $this->db->get_where('users', array('id' => $id));
return $query->row_array();
}