2014-05-10 67 views
1

即时创建与codeigniter我的第一个网站。 我试着去把编辑功能,我有错误:Codeigniter错误添加功能

严重性:通知消息: 未定义指数:程序 文件名:控制器/ 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'); 
} 
} 
} 
+0

@PuzzledBoy'$数据[ 'program'] = $ data ['news_item'] ['program']; //错误在这里' –

+0

这两条线都在做同样的工作。 '$ data = array('news_item'=> $ this-> news_model-> get_news($ id)); $ data ['news_item'] = $ this-> news_model-> get_news($ id);'摆脱任何一个并尝试。 –

+0

检查var_dump($ data ['program']);在控制器中。它给出了什么输出?张贴在这里。 –

回答

0

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

尝试

var_dump($data['news_item']); 

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

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

如果这些没有帮助,请张贴下面一行的输出, 这将有助于在这里给大家解决您的问题

var_dump($data['news_item']);