/ Metoda / przekierowania jest zawsze wykonywana w kreatorze kodu - nadawcy kodu

metoda przekierowania jest zawsze wykonywana w kreatorze kodu - nadawcy kodu

Stoję w obliczu problemów z funkcjącodeigniter i funkcja przekierowania pomocnika URL. Próbuję sprawdzić, czy zmienna $ cat jest fałszywa, jeśli tak, przekieruj na inną stronę za pomocą biblioteki util, a jeśli $ cat nie jest fałszywy, kontynuuj wykonywanie metody:

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);
}

Jest to metoda wewnątrz util:

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

Problem polega na tym, że gdy zmienna $ cat NIE jestfalse, metoda „$ this-> util-> showErrorPage ();” kontynuuje wykonywanie i (zaskakuje!) nie przekierowuje strony, ale renderuje stronę tak, jakby przekierowywała ją. metody tam i śledzenie strony "fotos_perfil" za pomocą firebug Widzę wywołania ajax "/ index" po załadowaniu strony "fotos_perfil".

Nie wiem, jak lepiej to wyjaśnię. Nie należy wpisywać go w bloku if, ponieważ $ cat nie jest fałszywy, ale „showErrorPage” jest nawet wykonywane.

A jeśli funkcja $ cat jest fałszywa, „showErrorPage” jest wykonywane pomyślnie i przekierowuje do „/ index”, co jest ok.

Jeśli zmienię funkcję „showErrorPage” na to:

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

nic nie jest powtarzane. Problem polega na funkcji przekierowania. Jest magicznie wykonywany, unikając „if”

Pomóż proszę, nie chcę, aby moja strona „/ index” była „wykonywana” w „tle” mojego „fotos_perfil”

ROZWIĄZANY: Mój błąd. Miałem ukryty element iframe w html powodujący 404 i przekierowujący do strony indeksu. Ta metoda showErrorpage jest używana we wszystkich metodach wzdłuż mojej aplikacji. Dziękuję wam wszystkim.

Odpowiedzi:

0 dla odpowiedzi № 1

Myślę, że masz podwójną negację.

gdyby $this->catsdao->getById($id); zwraca false kiedy nie ma nic na identyfikator !$cat jest taki sam jak !false który jest true.

EDYCJA: Przepraszam, myślę, że to wszystko, co chcesz, aby wprowadzić, jeśli masz fałszywe, zignoruj ​​to.