Исходная информация
Я только что установил новую копию CI и модифицировал контроллер приветствия, чтобы включить помощник URL, чтобы я мог вызвать метод base_url
. Затем я пытаюсь вызвать этот метод из home.php
Проблема: я получаю следующее сообщение об ошибке:
Message: Undefined property: Welcome::$load Filename: controllers/welcome.php
Код:
Вот как выглядит мой контроллер приветствия:
class Welcome extends CI_Controller { public function __construct() { $this->load->helper('url'); } public function index() { $this->load->view('home'); } }
Вид выглядит так:
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta charset="utf-8"> <meta name="viewport" content="width = device-width"> <meta name="description" content=""> <!-- Le styles --> <title>test site</title> <script> var BASEPATH = "<?php echo base_url(); ?>"; </script> <link href="<?php echo base_url('assets/css/bootstrap.min.css')?>" rel="stylesheet"> <link href="<?php echo base_url('assets/css/navbar.css')?>" rel="stylesheet"> </head>
Система умирает на линии в конструкторе контроллера, где я пытаюсь загрузить библиотеку …
Что я сделал до сих пор:
Пытался включить библиотеку url в config / autoload.php, например:
$autoload['helper'] = array('url');
Но я все еще получаю ошибку. Какие-либо предложения?
Благодарю.
Скриншоты:
Вы забыли важную вещь;
class Welcome extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); //Loading url helper } public function index() { $this->load->view('home'); //Loading home view } }
Конструкция parent::__construct
. Если вы этого не сделаете; Контроллер не будет наследовать абстрактный слой, если вы переопределите __construct в своем собственном контроллере.
Пока вы не переопределяете свой __construct
, все в порядке. Это происходит только тогда, когда вы переопределяете его. У вас нет функции load
потому что класс приветствия пуст (без наследования), даже если он расширяет CI_Controller
(но с переопределением __construct
).