Почему показывает ошибки в уроке 8 коделгнитер?

0

Вроде код написал как в уроке, а после редактирования новости показывает ошибки

<?php 

defined('BASEPATH') OR exit('No direct script access allowed');

class News extends CI_Controller {

	public function __construct() {
		parent::__construct();
		$this->load->model('news_model');
	}

	public function index() {
		$data['title'] = "Все новости";
		$data['news'] = $this->news_model->getNews();

		$this->load->view('templates/header', $data);
		$this->load->view('news/index', $data);
		$this->load->view('templates/footer');
	}

	public function view($slug = NULL) {
		$data['news_item'] = $this->news_model->getNews($slug);

		if(empty($data['news_item'])) {
			show_404();
		}

		$data['title'] = $data['news_item']['title'];
		$data['content'] = $data['news_item']['text'];

		$this->load->view('templates/header', $data);
		$this->load->view('news/view', $data);
		$this->load->view('templates/footer');
	}

	public function create() {
		$data['title'] = "Добавить новость";

		if($this->input->post('slug') && $this->input->post('title') && $this->input->post('text')) {

			$slug = $this->input->post('slug');
			$title = $this->input->post('title');
			$text = $this->input->post('text');

			if($this->news_model->setNews($slug, $title, $text)) {
				$this->load->view('templates/header', $data);
				$this->load->view('news/success', $data);
				$this->load->view('templates/footer');
			}
		} else {
			$this->load->view('templates/header', $data);
			$this->load->view('news/create', $data);
			$this->load->view('templates/footer');
		}

	}

	public function edit($slug = NULL) {
		$data['title'] = "Редактировать новость";
		$data['news_item'] = $this->news_model->getNews($slug);

		$data['title_news'] = $data['news_item']['title'];
		$data['content_news'] = $data['news_item']['text'];
		$data['slug_news'] = $data['news_item']['slug'];

		if($this->input->post('slug') && $this->input->post('title') && $this->input->post('text')) {
			$slug = $this->input->post('slug');
			$title = $this->input->post('title');
			$text = $this->input->post('text');

			if($this->news_model->updateNews($slug, $title, $text)) {
				echo "Новость отредактирована";
			}
		}

		$this->load->view('templates/header', $data);
		$this->load->view('news/edit', $data);
		$this->load->view('templates/footer');
	}

}

 

codeigniter

3 ответов

0

Какую ошибку показывает?

0

A PHP Error was encountered
Severity: Warning

Message: Trying to access array offset on value of type null

Filename: controllers/News.php

Line Number: 62

Backtrace:

File: C:\xampp\htdocs\kinomonster\application\controllers\News.php
Line: 62
Function: _error_handler

File: C:\xampp\htdocs\kinomonster\index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning

Message: Trying to access array offset on value of type null

Filename: controllers/News.php

Line Number: 63

Backtrace:

File: C:\xampp\htdocs\kinomonster\application\controllers\News.php
Line: 63
Function: _error_handler

File: C:\xampp\htdocs\kinomonster\index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning

Message: Trying to access array offset on value of type null

Filename: controllers/News.php

Line Number: 64

Backtrace:

File: C:\xampp\htdocs\kinomonster\application\controllers\News.php
Line: 64
Function: _error_handler

File: C:\xampp\htdocs\kinomonster\index.php
Line: 315
Function: require_once

и в конце

Новость успешно отредактирована

и форма добавления новости

0
Message: Trying to access array offset on value of type null

Эта ошибка обозначает. что пытаешься обратиться к несуществующему ключу в массиве. Проверь структуру базы данных, название полей. Запусти var_dump($data) и посмотри есть ли там title, slug и  text.  Вот так запусти:

public function edit($slug = NULL) {
    $data['title'] = "Редактировать новость";
    $data['news_item'] = $this->news_model->getNews($slug);
    echo "<pre>";
    var_dump( $data['news_item']);
    echo "</pre>"
 

Если совсем не получается, можно скачать готовый код из последнего урока, там же есть mysql дамп базы данных, можно развернуть проект и сравнить со своим проектом.

Sign up or Log in to write an answer