Я пытаюсь создать конструктор для моего контроллера, который ссылается на функцию, которая содержится в помощнике, который загружается автоматически.
Функция проверяет, вошел ли пользователь в систему или нет, и перенаправляет его на страницу входа.
Похоже, я неправильно настроил конструкцию, так как получаю следующую ошибку:
Fatal error: Call to undefined method Profile::is_logged_in()
Это контроллер:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Profile extends CI_Controller {
public function __construct()
{
parent::__construct();
//function inside autoloaded helper, check if user is logged in, if not redirects to login page
$this->is_logged_in();
}
public function index() {
echo 'hello';
}
}
Я хочу сделать функцию внутри контроллера доступной, только если пользователь вошел в систему.
Это помощник, который загружается автоматически
$autoload['helper'] = array('url','array','html','breadcrumb','form','function','accesscontrol');
(accesscontrol_helper.php):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';
die();
//$this->load->view('login_form');
}
}
Почему я не смогу запустить функцию? Содержит ли код в помощнике лучший метод?