我试图在我的项目中建立一个简单的删除函数,从表中删除数据。我不明白为什么它不工作。我使用codeigniter用户指南来帮助我解决这个问题。我得到一个错误,不知道为什么。这是我的控制器,模型和视图的删除:
遇到PHP错误
严重性:注意
Message: Undefined property: 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);
}
<<p> 视图/strong> //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
在你的控制器中像这样加载你的模型
$this->load->model('deletion_model');
然后调用deletion_model
的方法$this->deletion_model->delete($id);
确保你加载了模型。
之后,我建议你传递id的值作为字符串。
$this->db->where('id', '1');
或
如果不使用静态值,则使用提供给该函数的变量
$this->db->where('id', $id);
请仔细阅读指南
http://ellislab.com/codeigniter/user-guide/database/active_record.html删除
还可以使用
检索要删除的记录的id$id=$this->uri->segment(3); // depending on which segment the id is
- 我没有看到任何
$row
对象在你的控制器,虽然你使用它在你的视图:$row->id
- 你的模型没有返回任何东西。
- 删除指定行,
$object->id
将不复存在。 - 视图中的链接它声明你想要显示一个删除链接,但是你在处理实际删除动作的控制器中使用那个视图。
编辑:因为您尝试通过查询结果在视图中进行迭代,所以控制器中的$data['query']
应该指向一个select语句。