2015-05-17 17 views
0

因此,我正在執行Laravel 5應用程序中的錯誤處理,特別是前端部分,用戶會看到發生了一些錯誤。Laravel中的前端錯誤顯示體系結構

我有一個簡單的錯誤顯示頁面,這將接收到錯誤,並在瀏覽器中顯示給用戶的想法。 (也許一個與錯誤代碼和另一個與說明書變量)

所以,也許一個例子將是創建一個功能

public function displayErrors($errors){ 
    return view('auth.activationpending')->with('errors', $errors); 
} 

該視圖然後將其顯示給用戶。

由於這是一個非常常見的任何網站的東西,我想知道是否有類似的東西嵌入在laravel庫已經?或者也許是一個更好的方法來做到這一點..我擔心也許我不能將每個錯誤默認重定向到這個函數/頁面。

對此有何想法?

回答

1

假設你添加以下到您的控制器方法:

public function login(Request $request) 
{ 
    $this->validate($request, [ 
     'email' => 'required|email', 
     'password' => 'required' 
    ]); 

    //Do stuff 
} 

如果從提交的形式不符合驗證規則的領域,你將被重定向回,並有可$errors->all()迭代,這樣的作爲:

@foreach($errors->all() as $message) 
    <div class="row"> 
     <div class="col-md-12"> 
      <div class="alert alert-dismissible alert-danger"> 
       <button type="button" class="close" data-dismiss="alert">×</button> 
       <strong>{!! $message !!}</strong> 
      </div> 
     </div> 
    </div> 
@endforeach 

這只是一個很多關於如何檢索驗證錯誤的例子,但應該讓你開始。

1

在我看來,有兩種類型的錯誤,這就需要不同的行爲,在Web應用程序:

  • 從用戶輸入錯誤:當來自用戶的輸入沒有經過我們的驗證規則,這些錯誤需要向用戶顯示。我通常會將用戶重定向到他們輸入數據的頁面,並提供關於哪些數據錯誤的警報消息。我爲這種錯誤類型創建和打包,你可以看看我的一篇文章here

  • 錯誤與應用程序代碼:在生產環境中,你不應該顯示這些錯誤了,它可以顯示你的代碼的一些敏感信息。最常見的方法是向用戶返回一個500錯誤頁面,並將錯誤詳細信息記錄到日誌文件(或類似的東西)中,該文件在Laravel中默認實現。