我的控制器出了问题我可能在某处出错了

时间:2013-05-18 10:00:30

标签: php codeigniter

这是我的控制器

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

然后它可以工作

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

此致

3 个答案:

答案 0 :(得分:1)

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

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

我还要确保您正在加载model,正确引用它。


在CodeIgniter中,Input class允许您使用此功能访问POST数据:

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

作为替代方案:

$_POST['title'];

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

答案 1 :(得分:0)

尝试替换

redirect('post/');

header('Location:your_url');

重定向将立即重定向您,而不知道先前的语句已执行但不是标题();会这样做

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

答案 2 :(得分:0)

if($_POST){更改为此

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