У меня проблемы с функцией codeigniter и функцией перенаправления помощника url.Я пытаюсь проверить, является ли переменная $ cat ложной, если это так, перенаправить на другую страницу, используя библиотеку util, и если $ cat не ложна, продолжить выполнение метода:
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);
}
Это метод внутри util:
function showErrorPage() {
$this->CI->load->helper('url');
redirect('/index', 'refresh');
}
Проблема в том, что когда переменная $ cat НЕ ложна, метод "$ this-> util-> showErrorPage ();"продолжает выполнение и (сюрприз!) не перенаправляет страницу, но отображает страницу так, как если бы она перенаправляла на нее.Как мне узнать, что страница '/ index' отображается?... потому что у меня там есть методы ajax и, отслеживая страницу fotos_perfil с помощью firebug, я вижу вызовы ajax '/ index' после загрузки страницы fotos_perfil.
Не знаю, как лучшемогу я это объяснить.Он не должен входить в блок if, потому что $ cat НЕ ложно, но даже 'showErrorPage' выполняется.
И если функция $ cat ложна, 'showErrorPage' выполняется успешно и перенаправляет на'/ index', все в порядке
Если я изменю функцию 'showErrorPage' на это:
function showErrorPage() {
echo "hello!!";
}
ничего не отображается.Итак, проблема в функции перенаправления.Он волшебным образом выполняется, избегая 'if'
Помогите пожалуйста, я не хочу, чтобы моя страница / index была «выполнена» в «фоне» моего «fotos_perfil»
решено : Моя ошибка.У меня был скрытый iframe в html, вызывающий 404 и перенаправляющий на страницу индекса.Этот метод showErrorpage используется во всех методах моего приложения.Спасибо всем.