-2

このエラーが何度も発生する理由を認識できません。 基本的に私は学生のデータを編集しようとしています

次のファイルを使用しています。

コントローラー - 学生

表示 - students_edit

モデル - codegen_model

私のコントローラーは次のとおりです。

function edit(){
$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、問題なく動作していましたが、ここではエラーの場所を特定できません。

どんな解決策も大いに役立ちます。前もって感謝します。NC

答え :

コードは正常に動作しているように見えましたが、唯一の問題はクエリにあり、@Rick が言ったことは正しかったです。

4

2 に答える 2

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 に答える
0

データベース クエリに問題があるようです。私は使うだろう

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

ラインの後

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

次に、クエリを実行して、エラーがないかどうかを確認します。

ビューにいくつかのチェックを入れて、エラーを回避するためにエコーアウトする前に $result->id が存在するかどうかを確認します

于 2013-02-06T12:24:36.050 に答える