【问题标题】:Codeigniter tutorial delete Post doesn't workCodeigniter 教程删除帖子不起作用
【发布时间】:2012-03-08 14:56:28
【问题描述】:

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

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    在您的删除函数中,我没有看到您加载了 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 - 我也怀疑这是路由问题。我也去看看。

    【讨论】:

    • 我的模型是由构造函数加载的:$this->load->model('news_model');
    • 你没有解决我的问题,但至少你告诉我要检查什么,这对我有很大帮助!谢谢
    • 确定!毕竟是路由问题吗?只是好奇:)
    • 确实是路由问题!
    猜你喜欢
    • 2022-08-16
    • 2014-08-12
    • 2013-12-29
    • 2019-01-14
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多