Я пытаюсь создать аутентификацию для своего php веб-сайта. Я использую codeigniter платформу. Я должен буду проверить сессию на всех страницах моего веб-сайта. Таким образом для предотвращения повторения кода я планирую сделать это в функции помощника. Теперь, когда мои удостоверения пользователя находятся в моей базе данных, я хотел бы получить доступ к модели для запросов базы данных от функции помощника. В классе контроллера я сделал бы это при помощи
$this->load->model('user_model');
Сообщите мне его эквивалент в файле помощника. Любой вид предложения в подходе также ценится.Заранее спасибо.
] Вы не сможете использовать $this для доступа к вашему экземпляру CI в помощнике, но у CI есть способ сделать это -[
] [] Сначала вам нужна ссылка на ваш CI экземпляр: [
]. [$CI =& get_instance();
]
[] Тогда, если вам нужно загрузить модель, вы можете сделать это так: [
] [$CI->load->model('model_name');
]
[] И, наконец, вызов любой функции в вашей модели, как эта: [
] [$CI->model_name->function_name();
]
[] В основном, используйте $CI вместо $this. Надеюсь, это поможет. [
]Не так уж много повторений кода. Я бы предложил такой подход:
function __construct()
{
parent::Controller();
if ($this->auth->is_logged_in() !== TRUE) // "auth" is the authentication library
{
redirect('login');
}
}