/ / redirect metóda je vždy vykonaná v codeigniter - codeigniter

metóda presmerovania je vždy vykonaná v kódovači - kódovači

Som "čelia problémom s funkcioukódovanie a presmerovanie pomocníka url. Čo sa snažím urobiť, je overiť, či je premenná $ cat nepravdivá, ak áno, presmerovať na inú stránku pomocou knižnice util, a ak $ cat nie je falošná, pokračovať v realizácii metódy:

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

Toto je metóda vnútri:

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

Problém je, že keď premenná $ cat nie je NIEfalse, metóda "$ this-> util-> showErrorPage ();" sa stále vykonáva a (surpise!) nie je presmerovanie stránky, ale to robí stránku, ako by to "d presmerovanie na to. Ako zistím, že stránka" / index "je vykreslený? ... pretože som ajax metódy tam a sledovanie stránky "fotos_perfil" s firebugom vidím ajax volania "/ index" po načítaní stránky "fotos_perfil".

Neviem, ako lepšie to môžem vysvetliť. Nemalo by sa zadávať do bloku if, pretože $ cat nie je false, ale "showErrorPage" sa dokonca vykoná.

A ak je funkcia $ cat nepravdivá, "showErrorPage" sa vykoná úspešne a presmeruje na "/ index", to "s ok

Ak zmením funkciu "showErrorPage" na túto:

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

nič nie je ozveny. Problém je teda s funkciou presmerovania. Je magicky vykonaná, vyhýbajúc sa "ak"

Pomôžte mi, nechcem mať "/ index" stránku "popravený" v "pozadí" môjho "fotos_perfil"

vyriešené: Moja chyba. Mal som skrytý iframe v html, čo spôsobilo 404 a presmerovanie na stránku indexu. Metóda showErrorpage sa používa vo všetkých metódach pozdĺž mojej aplikácie. Ďakujem vám všetkým.

odpovede:

0 pre odpoveď č. 1

Myslím, že máte dvojitú negáciu.

ak $this->catsdao->getById($id); výnos false keď tam nie je nič pre ID, potom !$cat je rovnaká ako !false ktorý je true.

EDIT: Ospravedlňujeme sa, "ja som myslel, že všetky späť to je samozrejme to, čo chcete, zadať, ak máte falošné, prosím, ignorovať.