Как получить доступ к модели для запроса базы данных из вспомогательной функции?

Я пытаюсь создать аутентификацию для своего веб-сайта php. Я использую frameworkignign framework. Мне нужно будет проверить сеанс на всех страницах моего веб-сайта. Поэтому, чтобы избежать повторения кода, я планирую сделать это в вспомогательной функции. Теперь, когда мои учетные данные пользователя в моей базе данных я хотел бы получить доступ к модели для запроса базы данных от помощника функция. В классе контроллера я бы сделал это, используя

$this->load->model('user_model');

Пожалуйста, дайте мне знать его эквивалент в вспомогательном файле. Также приветствуется любое предложение в подходе. Спасибо заранее.

Ответ 1

Вы не сможете использовать $this для доступа к вашему экземпляру CI в помощнике, но у CI есть способ сделать это -

Сначала вам нужна ссылка на ваш экземпляр CI:

$CI =& get_instance();

Затем, если вам нужно загрузить модель, вы можете сделать это так:

$CI->load->model('model_name');

И, наконец, вызовите любую функцию в вашей модели следующим образом:

$CI->model_name->function_name();

В принципе, используйте $CI вместо $this. Надеюсь, что это поможет.

Ответ 2

Это не так много повторений кода. Я бы предложил такой подход:

function __construct()
{
    parent::Controller();

    if ($this->auth->is_logged_in() !== TRUE) // "auth" is the authentication library
    {
        redirect('login');
    }
}