0

这是我的控制器

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);

然后它工作

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

问候

4

3 回答 3

1

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

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

我还会确保您正在加载您的模型,并正确引用它。


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

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

作为替代方案:

$_POST['title'];

存在一些差异,文档中对此进行了说明。

于 2013-05-18T12:30:06.263 回答
0

尝试更换

redirect('post/');

header('Location:your_url');

重定向将立即重定向您,而不知道前一个语句已执行,而不是 header();会那样做

我认为这是造成问题的原因

于 2013-05-18T10:04:09.780 回答
0

改成if($_POST){这个

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

于 2013-05-18T10:29:27.603 回答