/ El método / redirect siempre se ejecuta en codeigniter - codeigniter

El método de redireccionamiento siempre se ejecuta en codeigniter - codeigniter

Estoy enfrentando problemas con una función enCodeigniter y función de redireccionamiento del ayudante de url. Lo que estoy tratando de hacer es verificar si la variable $ cat es falsa, si es así, redirigir a otra página usando la biblioteca util, y si $ cat no es falsa, continúe ejecutando el método:

function fotos_perfil($id) {

$this->data["s_menu"] = Util::MENU_CAT_ALBUMS;

$cat = $this->catsdao->getById($id);
if (!$cat) {

//here is the problem!!

$this->util->showErrorPage();
return false;
}
$this->data["cat"] = $cat;

$vuser = $this->usersdao->getById($cat->user);
$this->data["vuser"] = $vuser;

$this->load->view("front/cat/profile-photos", $this->data);
}

Este es el método dentro de util:

function showErrorPage() {
$this->CI->load->helper("url");
redirect("/index", "refresh");
}

El problema es que cuando la variable $ cat NO esfalso, el método "$ this-> util-> showErrorPage ();" sigue ejecutando y (¡sorprende!) no redirige la página, pero sí la renderiza como si "redirigiera a ella. ¿Cómo sé que la página" / index "está representada? ... porque tengo ajax Métodos allí y seguimiento de la página "fotos_perfil" con firebug Veo las llamadas ajax de "/ index" después de cargar la página "fotos_perfil".

No sé cómo mejor puedo explicar esto. No debe ingresar en el bloque if, porque $ cat NO es falso, pero incluso se ejecuta "showErrorPage".

Y si la función $ cat es falsa, el "showErrorPage" se ejecuta con éxito y redirige a "/ index", eso está bien

Si cambio la función "showErrorPage" a esto:

function showErrorPage() {
echo "hello!!";
}

nada se hace eco. Por lo tanto, el problema es con la función de redirección. Se ejecuta mágicamente, evitando el "si".

Ayuda, por favor, no quiero que mi página "/ index" se ejecute "en el" fondo "de mi" fotos_perfil "

SOLUCIONADO: Mi error. Tuve un iframe oculto en el html que causó un 404 y redirigió a la página de índice. Ese método showErrorpage se usa en todos los métodos a lo largo de mi aplicación. Gracias a todos.

Respuestas

0 para la respuesta № 1

Creo que tienes una doble negación en marcha.

Si $this->catsdao->getById($id); devoluciones false cuando no hay nada para la identificación, entonces !$cat es lo mismo que !false cual es true.

EDITAR: Lo siento, estoy pensando al revés, esto es, por supuesto, lo que quiere, para ingresar el if cuando tenga falso, por favor ignore esto.