Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter教程删除Post不';行不通_Php_Codeigniter - Fatal编程技术网

Php Codeigniter教程删除Post不';行不通

Php Codeigniter教程删除Post不';行不通,php,codeigniter,Php,Codeigniter,在完成用户指南后,我遇到了一个问题,这是我在过去两个小时里强迫解决的。我正在尝试添加功能以删除一篇由ID选择的帖子,我是PHP新手,无法找到任何解决问题的方法: 控制器 public function delete($id){ $id = $this->uri->segment(3); $data['title'] = 'Delete an item'; if($this->news_model->delete_news($id)){

在完成用户指南后,我遇到了一个问题,这是我在过去两个小时里强迫解决的。我正在尝试添加功能以删除一篇由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)它应该正确执行并从我的新闻表中删除ID为2的帖子

我真的不明白错误在哪里,但是通过执行这个,我得到了一个404。
我做错了什么

在您的函数delete中,我看不到您加载了news\u模型。如果不是自动加载,这可能就是问题所在。也许,首先通过插入以下内容验证控制器是否正在与模型对话:

echo 'Hello Model';
在新闻模型的“删除新闻”功能中

编辑:

而不是

  if($this->news_model->delete_news($id)){ 
     //conditions
  }

让您的模型根据其执行情况发送T/F。这将告诉我们错误是否在SQL中。通过无论如何返回TRUE,我们将看到该模型函数是否运行:

 return TRUE;
尝试添加步骤(用于错误检查)


和404-我也怀疑这是一个路由问题。我也来看看。

我的模型是由构造函数加载的:$this->load->model('news_model');你并没有解决我的问题,但至少你告诉我要检查什么,这让我非常高兴!谢谢你!这到底是一个路由问题吗?只是好奇:)这确实是一个路由问题!
$del = $this->news_model->delete_news($id);
echo 'del';
if($del == TRUE){
   //conditions
}