使用PHP方法链接重定向?

时间:2016-11-08 20:10:48

标签: php redirect

我们希望在提交后将用户重定向到包含一些错误的表单页面。我在我的控制器中有这个方法。

return redirect('create')->withErrors($errors)->withInputs($inputs);

现在我有一个名为redirect的辅助函数,它返回一个新的Redirect对象。

function redirect($fileName)
{
 return new Redirect($fileName);
}

这是Redirect类

的结构
class Redirect
{

  public function __construct($fileName)
  {
    header("Location: " . $fileName);

    return $this;
  }


  public function withErros($errors)
  {
    session_start();
    $_SESSION['errors'] = $errors;

    return $this;
  }



  public function withInputs($inputs)
  {
    session_start();
    $_SESSION('inputs') = $inputs;

    return $this;
  }
}

第一个链接方法(withErrors)正确运行,我可以在视图中显示错误。但第二个(withInputs)永远不会运行。我认为这是因为PHP中的头功能。 拜托,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

class Redirect
{
  protected $filename;
  public function __construct($fileName)
  {
      session_start();
      $this->filename=$filename;
  }
  public function __destruct()
  {
      $this->redirect();
  }
  public function withErros($errors)
  {
      $_SESSION['errors'] = $errors;
      return $this;
  }
  public function withInputs($inputs)
  {
      $_SESSION('inputs') = $inputs;
      return $this;
  }
  public function redirect(){
      header("Location: " . $this->filename);
      exit;
  }
}

这可以是一个解决方案。