Почему мой load-> view дает мне неопределенное свойство в CodeIgniter?

#php #codeigniter

#php #codeigniter

Вопрос:

Я не использовал CodeIgniter более года. Я помню, что это было полезно для быстрых и простых проектов, но, похоже, я столкнулся с первым препятствием здесь. Кажется, я не могу загрузить свой вид по умолчанию. Вот контроллер:

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

class Home extends CI_Controller {

  private $data = array();

  public function __constructor() {
        parent::__construct();
    }

  public function home() {
        $this->load->view('header');
        $this->load->view('nav');
        $this->load->view('home');
        $this->load->view('footer');
    }
}
  

Это дает мне:

Обнаружена ошибка PHP

Серьезность: обратите внимание

Сообщение: Неопределенное свойство: Home::$load

Имя файла: controllers/home.php

Номер строки: 13

Но я не могу понять, почему.

В моей конфигурации я установил ‘html’, ‘url’ и ‘form’ для автоматической загрузки. И мои маршруты по умолчанию имеют значение «home». Это немного расстраивает, потому что я знаю, что это что-то действительно простое, о чем я здесь забываю.

Ответ №1:

Вы __constructor ошибаетесь. Используйте __construct вместо __constructor

 public function __construct()
{
    parent::__construct(); 
}  
  

Ответ №2:

Ваш метод имеет то же имя, что и вызываемое вами представление, которое является home

Комментарии:

1. Спасибо, я знал, что это что-то простое. Я просто забыл, что это ограничение.

2. Имя метода может совпадать с именем представления.

3. попробуйте ответить на проблему другим решением, если это так