【发布时间】:2017-08-02 02:04:13
【问题描述】:
我正在处理会话数据,当用户在杂货店杂货表中输入新记录时,电子邮件会自动加载。在页面顶部,可以使用(在视图文件夹中)显示当前用户的姓名/电子邮件
<?php echo $user->email;?>
但是,当我尝试在 GC 控制器中使用 $user->email 时,即使在分配给变量之后也会出现错误。还尝试使用 set_userdata 更改模型,但仍然无法正常工作。代码如下
错误
消息:未定义变量:用户
消息:试图获取非对象的属性
型号
public function takeUser($username, $password)
{
$this->db->select('*');
$this->db->from('user');
$this->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get();
return $query->num_rows();
}
public function userData($username)
{
$this->db->select('username');
$this->db->select('name');
$this->db->select('email');
$this->db->where('username', $username);
$query = $this->db->get('user');
return $query->row();
}
控制器
public function program()
{
if($this->session->userdata('isLogin') == FALSE)
{
redirect('login/login_form');
}
else
{
$this->load->model('m_login');
$user = $this->session->userdata('username');
$data['level'] = $this->session->userdata('level');
$data['user'] = $this->m_login->userData($user);
}
$crud = new grocery_CRUD();
$crud->set_table('program');
$crud>columns('nama_program','kod_program','kos_program','rmk','rollingplan','user','email');
$crud>field_type('nama_program','kod_program','kos_program','rmk','rollingplan','user','email');
$crud>set_relation('rollingplan','rollingplan','nama_rollingplan');
$crud->callback_field('user',array($this,'user_field'));
$crud->callback_field('email',array($this,'email_field'));
$crud->set_subject('Program Baru');
$crud->required_fields('nama_program');
$output = $crud->render();
$this->_example_output_prog($output);
}
function user_field($value = '', $primary_key = null)
{
return '<input type="text" maxlength="50" readonly="readonly" value="'.$this->session->userdata('username').'" name="user" style="width:462px">';
}
function email_field($value = '', $primary_key = null)
{
$mail=$user->email;
return '<input type="text" maxlength="50" readonly="readonly" value="'.$mail.'" name="email" style="width:462px">';
}
【问题讨论】:
-
你必须检查这行:
$user = $this->session->userdata('username'); $data['level'] = $this->session->userdata('level'); $data['user'] = $this->m_login->userData($user);}因为你在 Controller 中调用 $user 并将 $data['user'] 发送到 View,所以 View 会理解 $user 是$data['user'] = $this->m_login->userData($user);,不是Controller中的用户$user = $this->session->userdata('username');
标签: php codeigniter grocery-crud