使用 PHP 方法链接重定向


Redirect Using PHP Method Chaining?

假设我们想在提交后将用户重定向到存在一些错误的表单页面。我的控制器中有此方法。

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

现在我有一个名为重定向的帮助程序函数,它返回一个新的重定向对象。

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

这是重定向类的结构

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 中的标头函数。有人可以帮我吗?

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;
  }
}

这可以是一个解决方案。