Недопустимый символ "'" (Apostrophe) в HTML-файле, созданный при загрузке представлений в Codeigniter, что приводит к белому наложению в верхней части страницы - PullRequest
0 голосов
/ 26 декабря 2018

, пожалуйста, помогите мне, я застрял в этом препятствии в течение некоторого времени.В основном я загружаю представления в codeigniter, и по какой-то странной причине я получаю пробел и апостроф.Это заставляет всю страницу выглядеть странно.

Это то, что я получаю при просмотре исходного кода в браузере

'

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Propercade Property</title>
    <meta charset="UTF-8">
    <meta name="description" content="WEBLINERZ Landing Page Template">
    <meta name="keywords" content="WEBLINERZ, unique, creative, html">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Favicon -->   
    <link href="application/views/img/favicon.ico" rel="shortcut icon"/>

Это заголовочный файл:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Propercade Property</title>
    <meta charset="UTF-8">
    <meta name="description" content="WEBLINERZ Landing Page Template">
    <meta name="keywords" content="WEBLINERZ, unique, creative, html">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Favicon -->   
    <link href="application/views/img/favicon.ico" rel="shortcut icon"/>

Я серьезно озадачен.Вот как я загружаю страницу:

$this->load->view('header-index');
$this->load->view('index',$send);
$this->load->view('footer');

Визуально, вот что я вижу:

снимок экрана

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

edit

функцию контроллера:

public function index(){
        $this->load->model('Listing_model'); 
        $data1 = $this->Listing_model->get_recent_listing();
        $data2 = $this->Listing_model->get_featured_listing(6);//number of listings to get ~in case there are too many featured listings
        $send = array(
            "recents" => $data1,
            "listings" => $data2
        );
        $this->session->set_userdata("page_name", "Index");
        $this->load->view('header-index');
        $this->load->view('index',$send);
        $this->load->view('footer');
    }

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

ob_clean();

Забавно, как такие мелочи могут вызвать столько проблем

1 Ответ

0 голосов
/ 26 декабря 2018

Как сохранить его СУХОЙ и сделать его более легким для отладки, прежде всего вам необходимо создать BASE_Controller, который в CodeIgniter имеет префикс по умолчанию с MY_, в любом случае, в вашем application/core создайте новый файл с именем MY_Controller и создайте в нем класс, пусть он расширяет CI_Controller, и вот основной код, который вам нужно добавить к нему:

class MY_Controller extends CI_Controller 
{
    public $data = array();

    public function __construct()
    {
            parent::__construct();
            // Your own constructor code
    }

    // now lets create our own render view
    public function render_view($view)
    {
        $this->load->view('templates/header', $this->data);
        $this->load->view($view, $this->data);
        $this->load->view('templates/footer', $this->data);
    }
}

Теперь в любом другом controller позвольте ему расширить MY_Controller и используйте render_view() для загрузки вида, и вы загрузили header и footer для вас, и вам не нужно повторять yourelf.

class Welcome extends MY_Controller 
{
    public function index()
    {
        // note that you already have global data array from my_controller, now you don't need to pass it here to the view, its already passed in render_view
        $this->data['title'] = 'Hello World';

        $this->render_view('your_view');
    }
}

OfКонечно, есть и более подходящие подходы, чем этот, вы можете создавать шаблоны и использовать различные макеты и т. д., но давайте пока оставим все просто, это все, что вам нужно.

Теперь вы можете использовать $title вот так:

<!DOCTYPE html>
<html lang="en">
<head>
    <title><?= $title ?></title>
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...