繁体   English   中英

Codeigniter中的问题

[英]Issues in Codeigniter

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

添加新条目“有效”,但是在add_new页面顶部出现以下错误:

http://pastebin.com/4UhMTqLj

控制器

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

模型

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

可能是什么原因?

编辑:我正在使用Codeigniter 3。

在传递到视图之前,必须启动$ data变量。

例如。 $ data = array(); 放在新的入门课程上

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

完全删除$data变量:

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

这主要是因为您实际上没有将任何信息传递给视图,因此在实例中包含它是没有意义的。

希望这可以帮助!

将代码下面的代码更改为“ 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');
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM