Codeigniter中的问题

时间:2014-11-25 01:30:43

标签: php codeigniter

我一直在尝试学习CI并按照我今天在网上找到的轻量级教程实施博客内容管理系统,但我目前在视图中遇到了一些问题。

添加新条目“有效”,但我在add_new页面上遇到以下错误:

http://pastebin.com/4UhMTqLj

CONTROLLER

function new_entry()
{
    $this->load->helper('form');
    $this->load->library(array('form_validation','session'));

    //set validation rules
    $this->form_validation->set_rules('entry_name', 'Title', 'required|xss_clean|max_length[200]');
    $this->form_validation->set_rules('entry_body', 'Body', 'required|xss_clean');

    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view('header', $data);
        $this->load->view('admin/new_entry', $data);
        $this->load->view('footer', $data);
    }
    else
    {
        //if valid
        $name = $this->input->post('entry_name');
        $body = $this->input->post('entry_body');
        $this->articles_model->new_entry($name,$body);
        $this->session->set_flashdata('message', '1 new entry added!');
        redirect('articles/new_entry');
    }
}

查看

<h2>Add new entry</h2>
<?php echo validation_errors(); ?>
<?php if($this->session->flashdata('message')){echo $this->session->flashdata('message');}?>
<?php echo form_open('articles/new_entry');?>
<p>Title:<br />
<input type="text" name="entry_name" />
</p>
<p>Body:<br />
<textarea name="entry_body" rows="5" cols="50" style="resize:none;"></textarea>
</p>
<input type="submit" value="Submit" />
<?php echo form_close();?>

MODEL

function new_entry($name,$body)
{
    $data = array(
        'entry_name' => $name,
        'entry_body' => $body
    );
    $this->db->insert('entry',$data);
}

可能是什么原因?

编辑:我正在使用Codeigniter 3。

3 个答案:

答案 0 :(得分:2)

您必须在传入视图之前启动$ data变量。

例如。 $ data = array(); 把它放在新的入门级

答案 1 :(得分:0)

我完全同意Cha Hernandez的答案,但另一种可能性是:

完全删除$data变量:

   $this->load->view('header');
    $this->load->view('admin/new_entry');
    $this->load->view('footer');

这主要是因为你实际上没有将任何信息传递给视图,所以在实例中没有任何意义。

希望这有帮助!

答案 2 :(得分:0)

将您的CONTROLLER TO文件更改为代码,我删除了变量$ data,因为它没有分配给任何值,并且不需要传递未定义的变量$ data。

function new_entry()
    {
        $this->load->helper('form');
        $this->load->library(array('form_validation','session'));

        //set validation rules
        $this->form_validation->set_rules('entry_name', 'Title', 'required|xss_clean|max_length[200]');
        $this->form_validation->set_rules('entry_body', 'Body', 'required|xss_clean');

        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('header');
            $this->load->view('admin/new_entry');
            $this->load->view('footer');
        }
        else
        {
            //if valid
            $name = $this->input->post('entry_name');
            $body = $this->input->post('entry_body');
            $this->articles_model->new_entry($name,$body);
            $this->session->set_flashdata('message', '1 new entry added!');
            redirect('articles/new_entry');
        }
    }