添加功能时Codeigniter错误

时间:2014-05-10 19:11:54

标签: php codeigniter

即时通过codeigniter创建我的第一个网站。 我试图把编辑功能,我有错误:

严重性:通知消息: 未定义的索引:程序 文件名:controllers / news.php行号:21

这里是控制器的代码:

<?php
class News extends CI_Controller {
public function __construct()
{
    parent::__construct(); 
    $this->load->model('news_model');
}
public function index() 
{
$data['news'] = $this->news_model->get_news();
$data['program'] = 'News archive';
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar');
$this->load->view('news/index', $data);
$this->load->view('templates/footer');
}
public function view($id)
{
$data = array('news_item' => $this->news_model->get_news($id));
$data['news_item'] = $this->news_model->get_news($id);
$data['program'] = $data['news_item']['program']; // ERROR IS HERE
$this->load->view('templates/header', $data);
$this->load->view('templates/sidebar');
$this->load->view('news/view', $data);
$this->load->view('templates/footer');
if (empty($data['news_item']))
{
    show_404();
}
 }
public function create(){
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Создать';
$this->form_validation->set_rules('program', 'Программа', 'required');
$this->form_validation->set_rules('code', 'Код', 'required');
    $this->form_validation->set_rules('course', 'Направление', 'required');
$this->form_validation->set_rules('form', 'Форма обучения', 'required');
$this->form_validation->set_rules('time', 'Срок обучения', 'required');
    $this->form_validation->set_rules('price', 'Стоимость', 'required');    
    $this->form_validation->set_rules('accreditation', 'Аккредитация', 'required');
$this->form_validation->set_rules('department', 'Кафедра', 'required');
    $this->form_validation->set_rules('level', 'Уровень', 'required');
$this->form_validation->set_rules('type', 'Тип ОП', 'required');
if ($this->form_validation->run() === FALSE)
{
    $this->load->view('templates/header', $data);
    $this->load->view('templates/sidebar');
    $this->load->view('news/create');
    $this->load->view('templates/footer');
}
else
{
    $this->news_model->set_news();
    $this->load->view('templates/header', $data);
    $this->load->view('templates/sidebar');
    $this->load->view('news/formsuccess');
    $this->load->view('templates/footer');
}
}
 public function edit($id) { // передаем ид для редактирования
 $this->load->helper(array('form', 'url'));
 $this->load->library('validation');
 if (!$this->input->post('id') && !$this->input->post('program')) {
   $news_item = $this->news_model->get($id);
   $this->validation->id = $news_item['id'];
   $this->validation->program = $news_item['program'];
 }
 $data = array();
 if ($this->validation->run() === FALSE)
 {
 $this->load->view('form', $data);
 }
 else
{
   $data = array(
    'program' => $this->input->post('program'),
    'code' => $this->input->post('code'),
    'course' => $this->input->post('course'),
    'form' => $this->input->post('form'),
    'time' => $this->input->post('time'),
    'price' => $this->input->post('price'),
    'accreditation' => $this->input->post('accreditation'),
    'department' => $this->input->post('department'),
    'level' => $this->input->post('level'),
    'type' => $this->input->post('type')
 );
   $this->news_model->update($data);
   redirect('/news');
}
}
}

1 个答案:

答案 0 :(得分:0)

未定义的索引当未定义数组索引的变量或值时,将调用错误消息。

尝试

var_dump($data['news_item']);

它是否将数据类型打印为Object?如果它的对象 尝试

$data['program'] = $data['news_item']->program; // ERROR IS HERE

如果这些没有帮助,请发布以下行的输出,  这将有助于每个人解决您的问题

var_dump($data['news_item']);