我一直在尝试学习CI并按照我今天在网上找到的轻量级教程实施博客内容管理系统,但我目前在视图中遇到了一些问题。
添加新条目“有效”,但我在add_new页面上遇到以下错误:
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。
答案 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');
}
}