Codeigniter:从Controller中的构造重定向

时间:2010-07-29 15:54:47

标签: codeigniter

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,我该如何重定向到索引函数?当我尝试这个时,我得到一个错误......

是否可以重定向到索引功能?

P.S。我是一个php / CI noob!

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,我会说您陷入无限重定向循环:

  • 用户转到主页
  • 在构造函数中,它检查订阅,如果失败,则重定向到Home
  • ==>循环!

您可能有一些解决方案:

  • 检测到调用的方法是index,在这种情况下不会重定向(您可以使用函数router->fetch_method()
  • 执行重定向到另一个控制器
  • 不要在构造函数中执行重定向,而是在每个Function中执行重定向。您只需将订阅控件放在一个函数中,并在每个函数的开头调用它。

最简单的可能是改变你的状况。 从

if($foo == true)

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

因此,如果CodeIgniter尝试访问索引,则不会再次重定向。

(我这里没有php服务器所以我无法检查确切的值)。但这个想法就在这里。

相关问题