Codeigniter: перенаправление из конструкции в контроллер - PullRequest
2 голосов
/ 29 июля 2010
function Home()
{
    parent::Public_Controller();
    $this->load->library('survey_form_processing');
    //Load Helpers
    $this->load->helper('form');
    $this->load->library('Paypal_Lib');
    $this->lang->load('userlib');
    $this->load->model('home_model');
    if($foo == true){
        redirect('home');
    }
}

Это моя конструкция контроллера "Home".Если значение == true, как я могу перенаправить на функцию индекса?Когда я пытаюсь это сделать, я получаю сообщение об ошибке ...

Можно ли перенаправить на функцию индекса?

PS Я нуб php / CI!

1 Ответ

1 голос
/ 29 июля 2010

Исходя из предоставленной вами информации, я бы сказал, что вы застряли в бесконечном цикле перенаправления:

  • Пользователь переходит на домашнюю страницу
  • В конструкторе, он проверяет подписку и в случае сбоя перенаправляет на домашний
  • ==> цикл!

У вас могут быть некоторые решения:

  • Определитьчто вызываемый метод index и в этом случае не перенаправлять (вы можете использовать функцию router->fetch_method()
  • Выполнить перенаправление на другой контроллер
  • Не выполнять перенаправление вконструктор, но в каждой функции. Вам просто нужно поместить элемент управления подпиской в ​​функцию и вызывать его в начале каждой функции.

Возможно, проще всего изменить ваше условие. От

if($foo == true)

К

if($foo == true && router->fetch_method() != 'index')

Так что, если CodeIgniter пытается достичь Индекса, он не будет перенаправлен снова.

(у меня нетPHP-сервер здесь, поэтому я не могу проверить точное значение). Но идея в том, что онповторно.

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