Как получить доступ к модели для запроса базы данных из вспомогательной функции?
Я пытаюсь создать аутентификацию для своего веб-сайта 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');
}
}