Почему показывает ошибки в уроке 8 коделгнитер?
Вроде код написал как в уроке, а после редактирования новости показывает ошибки
<?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');
}
}
3 ответов
Какую ошибку показывает?
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
и в конце
Новость успешно отредактирована
и форма добавления новости
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 дамп базы данных, можно развернуть проект и сравнить со своим проектом.