0
1

В уроке 3 все прошло полностью по плану.

Урок 4 же привел к тому, что при указании адреса дальше news/ срабатывает show_404() и отображается 404 page not found

Сделано было все в точности так же, как и в видео, и перепроверено несколько раз

$route['news/(:any)'] = 'news/view/$1';

в routes.php есть.

функция getNews() в News_models.php выглядит так:

public function getNews($slug = FALSE) {
	if ($slug === FALSE) {
		$query = $this->db->get('news');
		return $query->result_array();
	}
			
	$query = $this->db->get_where('news', array('slug' => $slug));
	return $query->row_array();
}

view() в News.php выглядит следующим образом:

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');
}

Проблем с доступом к базе данных нет, потому что, как сказал, после прошлого урока данные из нее вполне себе без проблем выводились.

Я попробовал убрать проверку if(empty($data['news_item'])) {}, вот, что выдает браузер после этого:

A PHP Error was encountered
Severity: Notice

Message: Undefined index: news_item

Filename: controllers/News.php

Line Number: 25

Backtrace:

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

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

затем то же самое, но со строчкой 26 в News.php, после чего выводи view news (то есть, то, что в файле news/view.php)

упомянутые в сообщении строчки:

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

из News.php и 

require_once BASEPATH.'core/CodeIgniter.php';

в index.php

Честно пытался понять, где именно вообще может быть ошибка, но - никак. Очень надеюсь на подсказку.


Иван Романов
5 years ago






$data['$news_item'] = $this->news_model->getNews($slug);

тут $ убери в '$news_item'

Роман
5 years ago

Один ответ