12

我有一个控制器,它有一个方法。方法里面的代码太长了,所以我把部分代码放到了其他私有方法里面,这样方法就可以理解了,不至于乱七八糟。

现在,当我从 URL 访问公共方法时,它会根据参数调用特定的私有方法来处理作业。作业处理完毕后,我想重定向到一个 URL,但重定向不起作用。

我的代码示例如下:

class SomeClass extends BaseController{
    public function getMethodName()
        {
            //check the params and choose a private method to call
            $this->processJob();
        }
    private function processJob()
    {
         //process the job and redirect at the end
         return Redirect::to('some/url');
    }
}

问题是,上述重定向不起作用。这是为什么?在 Codeigniter 中,当您使用redirect它时,无论从哪里调用它都可以正常工作。

如果上面的代码示例不是正确的方法,如果有人能告诉我它是如何完成的,我将不胜感激。谢谢。

4

2 回答 2

21

您也必须退回退货$this->processJob()

class SomeClass extends BaseController{
  public function getMethodName()
  {
      //check the params and choose a private method to call
      return $this->processJob();
  }

  private function processJob()
  {
     //process the job and redirect at the end
     return Redirect::to('some/url');
  }
}
于 2013-07-29T14:18:40.800 回答
2

您可以尝试根据您的私有函数结果从您的公共函数重定向到另一个页面(我认为这是使您的代码更具可读性的更好解决方案)。但它可以像你写的那样工作......

于 2013-07-29T14:15:26.870 回答