Я работаю в небольшом проекте с CI 3.0. Я настроил /application/config/autoload.php
для файла конфигурации приложения автозагрузки следующим образом:
$autoload['config'] = array('myappcfg');
Затем в конструкторе контроллера я делаю следующее:
protected $facebookSession;
public function __construct()
{
$this->facebookSession = FacebookSession::newAppSession(
$this->config->item( 'facebook_app_id' ),
$this->config->item( 'facebook_app_secret' )
);
}
Но я получаю это уведомление:
Обнаружена ошибка PHP. Серьезность: Уведомление Сообщение: Не определено.
собственность: ShareFacebook :: $ config Имя файла:
контроллеры / ShareFacebook.php Номер строки: 16
Backtrace:
File: /var/www/html/dts/myapp/application/controllers/ShareFacebook.php
Line: 16
Function: _error_handler
File: /var/www/html/dts/myapp/index.php
Line: 292
Function: require_once
Fatal error: Call to a member function load() on a non-object in /var/www/html/dts/myapp/application/controllers/ShareFacebook.php on line 16
Кто-нибудь может сказать мне, что я делаю не так? Почему я не могу получить доступ $this->config
на контроллере, если файл конфигурации загружен?
Вы не заявили как таковой, поэтому я предполагаю, что когда вы пытались …
protected $facebookSession;
public function __construct()
{
echo $this->config->item('facebook_app_id');
echo '<br>';
echo $this->config->item('facebook_app_secret');
// $this->facebookSession = FacebookSession::newAppSession(
// $this->config->item( 'facebook_app_id' ),
// $this->config->item( 'facebook_app_secret' )
// );
}
Вы смогли увидеть значения двух рассматриваемых элементов конфигурации!
Обновить:
Итак, у вас есть файл myappcfg.php, сохраненный в / application / config, а сам файл содержит что-то вроде …
<?php
$config['facebook_app_id'] = 'app_id';
$config['facebook_app_secret'] = 'app_secret';
Также проверьте правильность написания и регистр ваших имен файлов. Иногда это может быть так просто.
Ну, так как я нашел решение, которым я поделюсь для других, проблема в конструкторе, так как я пропустил наследование от CI_Controller. В нескольких словах этого не было:
public function __construct() {
parent::__construct();
}