0
我一直在努力解決這個問題一段時間。我想在我的foreach循環中捕獲任何異常,並繼續循環其他任何數據,但我還想讓用戶知道通過客戶端失敗的原因。所有對我函數的調用都是通過ajax調用來完成的。用戶輸出處理循環中的異常
爲此,我一直在使用下列內容:
$errors = array();
foreach ($form as $index => $data) {
try{
//continue, item has been processed
}catch(exception $e){
//add some data to the errors array
array_push($data, $errors);
}
}
return Response::json($errors);
這讓我再拿到失敗在我的Ajax響應的項並通知用戶。
我不確定這是最佳實踐還是有更好的方法來做到這一點?有沒有更好的方法可以在不中止循環的情況下將錯誤返回給客戶端?
一些背景信息: 我主要是想在我將數據添加到我的數據庫時使用它。
通常你會用自己的錯誤消息編寫自己的驗證,這對用戶比php或mysql錯誤更有意義 - 「此電子郵件已經註冊」比「重複輸入」hello @ gmail更有用。 com''鍵'PRIMARY'。 – Steve
是的,我明白,我會返回「等等等等,不能被添加到數據庫」或類似的東西。我問什麼是在循環中處理這些問題的最佳方法而不是如何檢查用戶是否存在 – arrowill12
我的觀點是你正在捕獲異常作爲驗證的一部分,例外情況應該用於例外 - 你應該改爲執行你自己的驗證代碼。然後json編碼就沒問題了 – Steve