我无法识别为什么会出现这种错误。 基本上我正在尝试编辑学生的数据
我使用以下文件:
控制器 - 学生
查看 - students_edit
模型 - codegen_model
我的控制器如下:
功能编辑(){
$这 - &GT;负载&GT;库( 'form_validation'); $ this-&gt; data ['custom_error'] ='';if ($this->form_validation->run('students') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">'.validation_errors().'</div>' : false); } else { $data = array( 'username' => $this->input->post('username'), 'password' => $this->input->post('password'), 'phone' => $this->input->post('phone'), 'email' => $this->input->post('email'), ); if ($this->codegen_model->edit('students',$data,'id',$this->input->post('id'))== TRUE) { redirect(base_url().'index.php/students/manage/'); } else { $this->data['custom_error'] = '<div class="form_error"><p>An Error Occured</p></div>'; } } $this->data['result'] = $this->codegen_model->get('students', 'id,username,password,phone,email', 'id = '.$this->uri->segment(3),NULL,NULL,true); $this->load->view('students_edit', $this->data); }
观点如下:
<?php
echo form_open(current_url()); ?>
<?php echo $custom_error; ?>
<?php echo form_hidden('id',$result->id) ?>
<p>
<input id="username" type="text" name="username" value="<?php echo $result->username ?>" />
<?php echo form_error('username','<div>','</div>'); ?>
</p>
<p>
<input id="password" type="password" name="password" value="<?php echo $result->password ?>" />
<?php echo form_error('password','<div>','</div>'); ?>
</p>
<p> <input id="phone" type="text" name="phone" value="<?php echo $result->phone ?>" />
<?php echo form_error('phone','<div>','</div>'); ?>
</p>
<p>
<input id="email" type="text" name="email" value="<?php echo $result->email ?>" />
<?php echo form_error('email','<div>','</div>'); ?>
</p>
<?php echo form_submit( 'submit', 'Submit'); ?>
</p>
<?php echo form_close(); ?>
Codegen_model如下:
function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){
$this->db->select($fields);
$this->db->from($table);
$this->db->limit($perpage,$start);
if($where){
$this->db->where($where);
}
$query = $this->db->get();
$result = !$one ? $query->result($array) : $query->row() ;
return $result;
}
当我尝试加载视图student_edit时出现以下错误:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: views/students_edit.php
Line Number: 5
当我尝试result->id
wid其他示例时,它工作正常,但在这里我无法弄清楚错误在哪里。
任何解决方案都会有很大帮助。提前致谢。 NC
答案:
代码似乎工作正常,但问题出在查询中,@ Rick说的是正确的。
答案 0 :(得分:0)
听起来您的数据库查询存在问题。我会用
die($this->db->last_query());
行后
$query = $this->db->get();
然后尝试运行查询以查看是否存在任何错误。
我还会在您的视图中添加一些检查,以确定$ echo-&gt; id是否存在,然后将其回显以避免错误
答案 1 :(得分:0)
我怀疑问题是codegen_model->get
返回null不是对象的东西。可能是null
?
尝试执行var_dump($result)
以确切了解您从$this->codegen_model->get('students', 'id,username,password,phone,email', 'id = '.$this->uri->segment(3),NULL,NULL,true);
顺便说一下可待因模型......这不是你应该如何在CI中使用模型。