Урок 4. Не выводится название страницы, в названии прописывается весь путь

0

Не выводится название страницы title

Код header.php:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><?php echo $date ?> </title>
</head>
<body>

Код News.php:

<?php

defined('BASEPATH') OR exit('Now 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'); 
    }
}

Код News_model.php:

<!--модель для запросов в бд (работа с бд)

<?php 

class News_model extends CI_Model { 

    public function __construct() {

        $this->load->database(); 

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

}

Код routes.php:

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

$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

$route['news'] = 'news'; //страница news 

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

4 ответов

1
<title><?php echo $date ?> </title>

Вы в title пытаетесь вывести весь массив $data, по этому не выводится. В контроллере у вас переменная называется $data['title'], соответственно попробуйте написать так

<title><?php echo $title ?></title>
1

Если из title который в header вообще php код убрать, а написать любой текст, этот текст корректно отображается или тоже путь выводится? Если так, проверьте физическое расположение header, в правильной ли он папке лежит

1

Ничего не изменилось

1

Все перепробовал, пока не открыл код через Sublime, так я обычно через VS code сижу. Sublime показал что у меня в header.php открыты комментарии, а VS code этого не показывал)

Sign up or Log in to write an answer