Codeigniter删除功能不起作用

时间:2013-03-12 09:48:26

标签: php codeigniter

我正在尝试在项目中构建一个简单的删除函数来删除表中的数据。我不知道为什么它不起作用。我使用codeigniter用户指南来帮助我解决这个问题。我收到错误,不知道为什么。这是我的控制器,模型和删除视图:

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:stdClass :: $ id

模型

function delete()
{
    $this->load->database();
    $tables = array('info', 'info2');
    $this->db->where('id', 1);
    $this->db->delete($tables);

}

控制器

 function del($tables){


if((int)$tables > 0){
          $this->info_model->delete($tables);
}

$data = $this->info_model->delete();
$data['query'] = $this->result_model->delete();

$this->load->view('info_view',$data);    
 }

查看

//this line gives me the error

 <td><?php echo anchor('info_controller/del' . $row->id,'Delete')?> </td>

修改

我用这个教程来做这个

http://www.phpeveryday.com/articles/CodeIgniter-Form-Centralizing-$data-P291.html

2 个答案:

答案 0 :(得分:2)

在您的控制器中加载您的模型

$this->load->model('deletion_model');

然后调用deletion_model的方法

$this->deletion_model->delete($id);

确保加载模型。

之后我建议你将id的值传递给字符串。

$this->db->where('id', '1');

OR

如果不使用静态值,请使用提供给此函数的变量

$this->db->where('id', $id);

请正确阅读指南

http://ellislab.com/codeigniter/user-guide/database/active_record.html#delete

您还可以使用

检索要删除的记录的ID
$id=$this->uri->segment(3); // depending on which segment the id is

答案 1 :(得分:-1)

  1. 虽然您在视图中使用了$row
  2. 您的模型没有返回任何内容。
  3. 如果删除指定的行,$row->id将不复存在。
  4. 您视图中的链接指出您要显示删除链接,但您在控制器中使用该视图来处理实际的删除操作。
  5. 编辑: 由于您尝试通过查询结果在视图中进行迭代,因此控制器中的$object->id应指向select语句。