2016-11-08 39 views
0

比方說,我們希望在提交後將用戶重定向到有錯誤的表單頁面。我在我的控制器中有這個方法。使用PHP方法鏈接重定向?

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

現在我有一個名爲redirect的助手函數,它返回一個新的Redirect對象。

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中的頭函數。 有人可以幫我嗎?

+0

然後''__SESSION ['inputs']' –

+0

'withErros'應該是'withErrors'。 – Barmar

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

這可以是一個解決方案。

+0

非常感謝。 –