0

大学のプロジェクトのソーシャル ネットワーキング サイトの一部としてデータベースからメッセージ行を削除しようとしていますが、次のエラーが表示されます: Severity: Notice Message: Undefined index: id in my view. どんな助けでも大歓迎です!!!!

This is my method in the Model:

function delMessage($id)
  {

    $this->db->where(array('id' => $id));
    $this->db->delete('messages');

  }

This is my method in my Controller:

 function delMessage($id) {

    $this->messages->delMessage($id);

    redirect('message');

   }

And this is the code in my view:

 if(!empty($messages)){
           foreach($messages as $message):
           $delete = $message['id']; 
           var_dump($message); ?>
          <li><?=$message['from']?> says...: "<?=$message['message']?>"(<?=anchor("message/delMessage/$delete", 'delete')?>)</li>      
         <?php endforeach?> 
          <?php }else{ ?>

         <?php echo 'No Messages to View'; }?>   
4

1 に答える 1

1

これを書いた方法では、データを渡さずにビューを呼び出しています。ビューで配列をループする場合は、コントローラーから配列を渡す必要があります。

コントローラーは次のようにする必要があります。

function delMessage($username) {
    $this->load->model('messages_model');
    $data['messages'] = $this->messages->deleteUserMessage($username);
    $this->load->view('message', $data);
}

それが機能するためには、モデルは単なる削除以上のことをしなければなりません。また、データベースにクエリを実行し、配列 $messages を返す必要があります。

私はあなたをもっと助けようとすることができますが、あなたのコードを見ると、あなたが何をしようとしているのかわかりません. 変数 $delete を割り当てましたが、一度も使用していません。各ループで配列をダンプしており、毎回「from」をエコーし​​ています。この時点で、それはエジプトの象形文字のようなものです。もう少し情報を提供してください。

提供された新しい情報に基づく更新:

function deleteUserMessage($username) {
    $this->db->where('from', $username);
    $this->db->or_where('to', $username); 
    $query = $this->db->get('messages');
    if ($query->num_rows() > 0){
        $messages = $query->result_array();
        $this->db->where('from', $username);
        $this->db->or_where('to', $username); 
        $this->db->delete('messages');
        return $messages;
    }
}
于 2012-12-24T21:23:27.103 に答える