2010-01-04 8 views
11

Estoy tratando de crear autenticación para mi sitio web php. Estoy usando el marco codeigniter. Tendré que validar la sesión en todas las páginas de mi sitio web. Entonces, para evitar la repetición del código, planeo hacerlo en una función de ayuda. Ahora que mis credenciales de usuario son en mi base de datos me gustaría acceder al modelo para consultar la base de datos desde la función auxiliar . En una clase de controlador, habría hecho esto usando¿Cómo acceder al modelo para consultar la base de datos desde una función auxiliar?

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

Háganme saber su equivalente en un archivo auxiliar. Cualquier tipo de sugerencia en el enfoque también es apreciada. Gracias por adelantado.

Respuesta

20

Usted no será capaz de usar $ this para acceder a la instancia de CI en un ayudante, pero IC tiene una manera de hacer esto -

En primer lugar, necesita una referencia a la instancia CI:

$CI =& get_instance(); 

Entonces, si es necesario cargar el modelo puede hacerlo de esta manera:

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

Y finalmente llamar a cualquier función en su modelo como este:

$CI->model_name->function_name(); 

Básicamente, use $ CI en lugar de $ this. Espero que ayude.

1

No es mucha repetición de código. Sugeriría este enfoque:

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

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