Codeigniter教程删除帖子不起作用

时间:2012-03-08 14:56:28

标签: php codeigniter

完成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。 我究竟做错了什么?

1 个答案:

答案 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 - 我也很怀疑这是一个路由问题。我也会看一下。