-2

我无法识别为什么这个错误会一次又一次地出现。 基本上我正在尝试编辑学生的数据

我正在使用以下文件:

控制器 - 学生

查看 - students_edit

模型 - codegen_model

我的控制器如下:

函数编辑(){
$this->load->library('form_validation'); $this->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其他示例时,它工作正常,但在这里我无法弄清楚错误在哪里。

任何解决方案都会有很大帮助。提前致谢。数控

回答 :

代码似乎工作正常,但唯一的问题在于查询,@Rick 说的是对的。

4

2 回答 2

0

听起来您的数据库查询有问题。我会用

die($this->db->last_query());

线后

$query = $this->db->get();

然后尝试运行查询以查看是否有任何错误。

我还将在您的视图中进行一些检查,以查看 $result->id 是否存在,然后再将其回显以避免错误

于 2013-02-06T12:24:36.050 回答
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 中使用模型的方式。

于 2013-02-06T12:26:30.087 回答