Laravel从私有方法重定向

时间:2013-07-29 14:04:13

标签: php laravel laravel-4

我有一个有方法的控制器。代码在方法中太长了,所以我把一些代码放在其他私有方法中,这样方法就变得可以理解,而不会弄乱它。

现在,当我从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时,它在从它调用的地方起作用。

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

2 个答案:

答案 0 :(得分:15)

你也必须从$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');
  }
}

答案 1 :(得分:2)

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