/ / метод переадресації завжди виконується в кодіінгітері - кодінігтері

Метод переадресації завжди виконується в кодіінгітері - кодінігтері

Я стикаюся з проблемами з функцією в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 НЕfalse, метод "$ this-> util-> showErrorPage ();" продовжує виконуватися і (surpise!) він не перенаправляє сторінку, але це робить сторінку, як якщо б "D перенаправлення на нього. Як я знаю, що сторінка" / індекс "візуалізується? методів немає, і простежуючи сторінку "fotos_perfil" з firebug я бачу виклики ajax "/ index" після завантаження сторінки "fotos_perfil".

Я не знаю, як краще пояснити це. Вона не повинна входити в блок if, оскільки $ cat НЕ є помилковим, але "showErrorPage" навіть виконується.

І якщо функція $ cat є помилковою, "showErrorPage" успішно виконується і перенаправляє на "/ index", що добре

Якщо змінити функцію "showErrorPage" на це:

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

ніщо не повторюється. Отже, проблема полягає в функції перенаправлення. Він магічно виконаний, уникаючи "якщо"

Допоможіть, будь ласка, я не хочу, щоб моя "/ index" сторінка "виконувалася" на "тлі" мого "fotos_perfil"

Вирішено: Моя помилка. Я мав прихований iframe у html, викликаючи 404 та перенаправлення на сторінку індексу. Цей метод showErrorpage використовується у всіх методах, розташованих на моєму додатку. Дякую вам всім.

Відповіді:

0 для відповіді № 1

Я думаю, у вас є подвійне заперечення.

якщо $this->catsdao->getById($id); повертає false тоді, коли немає нічого для ідентифікатора, то !$cat такий же, як і !false який true.

EDIT: Вибачте, я думаю, що все назад, це, звичайно, те, що ви хочете, щоб увійти, якщо, коли у вас є помилкові, будь ласка, ігноруйте це.