我试图将特定字段从记录保存到会话中,用于我的用户角色。这里的问题是除了 nama 之外,我不能接受任何其他字段。
控制器/ verify_login
public function index(){
$this->load->model('verify_login_model');
$username = $this->input->post('username');
$password = $this->input->post('password');
$result = $this->verify_login_model->verify($username, $password);
if($result == $username) {
$name = $this->verify_login_model->getinfo($username);
$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('username', $username);
$this->session->set_userdata('name', $name);
$this->load->view('home_view');
} else {
redirect('login');
}
模型/ verify_login_model
function verify($username, $password){
$this->db->select('username', 'password');
$this->db->from('tb_user');
$this->db->where('username', $username);
$this->db->where('password', MD5($password));
$this->db->limit(1);
$query = $this->db->get();
if($query->num_rows()==1) {
return $username;
} else {
return false;
}
}
function getinfo($username) {
$this->db->select('nama', 'username');
$this->db->from('tb_userInfo');
$this->db->where('username', $username);
$this->db->limit(1);
$query = $this->db->get();
if($query->num_rows()==1) {
$result = $query->row();
return $result->nama;
} else {
return false;
}
}
视图
<?php echo $this->session->userdata['name']?>
var_dump($ result):object(stdClass)#22(1){[“nama”] =&gt; string(4)“test”}
如果我更改了返回$ result-&gt; nama;到$ result-&gt;用户名;我得到错误:未定义的属性:stdClass :: $ username即使你确定表中有200%的用户名字段,并直接尝试了查询。
答案 0 :(得分:1)
你的select语句中有一个错误,它必须是
$this->db->select('nama,username');
你正在分离每一列,这是不正确的,所有的列都在一个字符串中,这就是为什么它告诉你它未定义的原因,因为你发送的唯一列是nama,你发送的用户名是第二个参数选择。
以下是 CodeIgniter 2.2.0的active record链接