我的控制器出了问题,我可能有什么地方出了问题


Something goes wrong with my controller I may have mistake somewhere of it

这是我的控制器

function new_post(){
    if($_POST){
        $data=array(
            'title'=>$_POST['title'],
            'post'=>$_POST['post'],
            'active'=>1);
    $this->post->insert_post($data);
    redirect('post/');
    } 
    else {
        $this->load->view('new_post');
    }
}

这是不工作,这个控制器是正常的, 这是它插入到表单中的模型。

  function insert_post($data){
        $this->db->insert('posts',$data);
        return $this->db->insert_id();
    }

如果我把这个改成

                  $data=array(
                'title'=>$_POST['title'],
                'post'=>$_POST['post'],
                'active'=>1);
              $this->post->insert_post($data);

我是否在第一个控制器上做了任何错误因为它没有插入....

尝试更改条件,以查看值是否已设置:

if(isset($_POST['title']) && isset($_POST['post']))
{ ...

我也会确保你正在加载你的模型,正确地引用它。


在CodeIgniter中,Input类允许您使用以下函数访问POST数据:

$this->input->post('title');

作为替代:

$_POST['title'];

有一些不同之处,在文档中有解释

尝试替换

redirect('post/');

header('Location:your_url');

redirect会在不知道前面的语句已经执行的情况下立即重定向你,除非是header();会这样做的

我认为这是导致问题的原因

change if($_POST){ to this

if($_POST['title'] && $_POST['post']){