完成tutorial from the codeigniter用户指南后,我遇到了一个问题,我在最近两个小时内一直在逼迫。我正在尝试添加删除帖子的功能,通过ID选择,我是PHP的新手,无法找到解决我问题的任何方法:
控制器
public function delete($id){
$id = $this->uri->segment(3);
$data['title'] = 'Delete an item';
if($this->news_model->delete_news($id)){
$this->load->view('templates/header', $data);
$this->load->view('news/success');
$this->load->view('templates/footer');
}else{
}
}
模型
public function delete_news($id){
$this->db->where('id',$id)->delete('news');
return $this->db->affected_rows();
}
路由
$route['news/delete/(:num)'] = 'news/delete/$1';
我正在索引页面中调用该函数,其中所有帖子都显示为锚点:
<p><a href="<?php echo site_url('news/delete/'.$news_item['id'])?>">Delete article</a></p>
并调用正确的URL(http://localhost/webapp/index.php/news/delete/2),该URL应该正确执行并删除我的新闻表中ID为2的帖子。
我真的无法理解错误在哪里,但通过执行此操作,我得到了404。 我究竟做错了什么?
答案 0 :(得分:3)
在你的函数删除中,我没有看到你加载了news_model。如果它不是自动加载,那可能是问题。也许,首先通过插入验证控制器正在与模型通信:
echo 'Hello Model';
<_>在news_model的delete_news函数中。
编辑:
而不是
if($this->news_model->delete_news($id)){
//conditions
}
和
让你的模型根据它的执行发送T / F.这将告诉我们错误是否在SQL中。无论如何返回TRUE,我们都会看到该模型函数是否运行:
return TRUE;
尝试添加步骤(用于错误检查)
$del = $this->news_model->delete_news($id);
echo 'del';
if($del == TRUE){
//conditions
}
使用404 - 我也很怀疑这是一个路由问题。我也会看一下。