无法在codeigniter下的同一控制器上重定向到不同的方法

时间:2013-04-25 18:18:31

标签: php codeigniter redirect codeigniter-2

假设我有一个控制器,我想将两个方法从method1重定向到method2,但由于以下错误而无法实现:

Chrome:Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

火狐:The page isn't redirecting properly

我该如何解决这个问题?

class Site extends CI_Controller {
       function method1() {
           { ... Some Code ... }
            redirect('site/method2');
        }

        function method2() {
            { ... Rest of the code  ... }
        }
}

2 个答案:

答案 0 :(得分:1)

你可以这样做.........

class example extends CI_Controller{

    public function __construct()
    {
        parent::__construct();
            }

            public function method1(argument1)
            {
                   //your code
            }


            public function method2(argument2)
           {
               //your code

               $this->method1(arg);

                        or

              echo '<script language="javascript">top.location.href="'.ROOT_FOLDER.'/example/method1/'.$argument.'";</script>';
           }

答案 1 :(得分:1)

问题是您必须检查当前的url是否与您计划重定向的网址相同,然后不再重定向就是一个示例,

class Site extends CI_Controller {
       function method1()
       {
           if(// all is GOOD)
           {
              $this->redirect('site','method2','args');
           }else{
              // Do something if the code fails
           }
        }

        function method2()
        {
           if(// all is GOOD)
           {
              $this->redirect('site','method1','args');
           }else{
              // Do something if the code fails
           }
        }

        function check_redirect($controller,$method,$args)
        {
           if($this->router->class !== $controller AND $this->router->method !== $method)
           {
              redirect($controller.'/'.$method.'/'.$args);
           }
        }
}
The page isn't redirecting properly重定向到method1时会发生

method2,然后当到达method2时,它会再次重定向回method1,完成无重定向的重定向周期。< / p>

这只是基本没有放任何错误处理。