Si, usas el redirect.
Vamos a hablar claro, en MVC (este framework incluido) no podes desde un controller llamar directamente a un action de otro controller.
Con llamar directamente me refiero a que no podes invocar un action de otro controller como si fuese una funcion de una clase mas.
Lo que si podes hacer es redirigir al usuario a otra parte segun lo creas conveniente, cuando usas el redirect se va a estar llamando el controller y el action al cual vos lo mandes y eso se va a ejecutar. Algo obvio que por ahi no estoy aclarando es que cuando haces un redirect, todo el codigo que esta despues del redirect queda en la nada, pasa a ejecutarse el nuevo controller.
Ahora, el redirect lo estas usando para mandar usuarios no logueados a la pagina de login, verdad?
Ese redirect lo tendria que hacer la funcion generica que controla el login de los usuarios y que tienes en el base controller, como te comentaba en el otro post.
Por ejemplo en el base controller podrias tener una funcion de la siguiente forma:
Insertar CODE, HTML o PHP:
protected function isLoguedIn() {
checkeas si esta logueado
if (logueado) {
return true;
} else {
redirect_to(login);
}
}
despues en cualquiera de tus controllers (que tienen que extender del base controller) haces algo como:
Insertar CODE, HTML o PHP:
if (isLoguedIn()) {
haces lo que tengas que hacer;
}
No tenia ganas de ponerme a ver las funciones exactas de CI asi que lo hice con una especie de seudocodigo
😛