Codeigniter: есть ли способ идентифицировать представление, которое инициировало запрос в классе контроллера? - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть определенный класс, который получает запрос из разных представлений. Он обрабатывает запрос и должен перенаправить пользователя на просмотр, который он «посещал». Есть ли способ определить это представление, чтобы я мог загрузить его обратно в браузер?

Спасибо.

1 Ответ

2 голосов
/ 03 февраля 2012

Почему бы просто не перенаправить обратно ссылающуюся страницу?Вот некоторые функции, которые я обычно помещаю в файл MY_url_helper.php для выполнения этого:

<?php
function redirect_back()
{
    redirect($_SERVER['HTTP_REFERER']);
}

function save_next($next_url = NULL)
{
    if (empty($next_url))
    {
        $next_url = current_url();
    }

    $CI =& get_instance();
    $CI->session->set_userdata('next_url', $next_url);
}

function redirect_next($fallback = '')
{
    $CI =& get_instance();
    $next = $CI->session->userdata('next_url');
    if ( !empty($next))
    {
        $CI->session->unset_userdata('next_url');
        redirect($next);
    }

    redirect($fallback);
}

Пара способов использования этих функций:

  1. Вызов redirect_back() в действии контроллеракоторый обрабатывает, скажем, данные формы
  2. Вызовите save_next() в действии контроллера, которое отображает представление, затем вызовите redirect_next() в действии контроллера, которое обрабатывает данные формы

Этоне слишком REST-подобный, но он выполняет свою работу, позволяя вам сосредоточиться на более важных вещах в жизни ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...