2017-02-15 127 views
3

很多像Laravel這樣的框架都沒有提供關於如何進行前端驗證的任何建議。這是可以理解的來自後端框架。保持與前端驗證同步的後端驗證

但是事先提供javascript驗證是非常好的,這樣用戶在填寫表單時可以立即看到是否有問題。

我知道如何使用Laravel之類的方法對後端進行驗證,並且我知道如何在JavaScript前端進行驗證。然而,問題在於很多框架不能跨越這個前端/後端邊界,但我需要讓他們的驗證與彼此同步。

我不能在驗證錯誤的前端不再適用於後端驗證。人們如何處理這個問題?

人們通常只是做後端驗證,並將一個flashbag或錯誤傳遞給用戶,而只是簡單地跳過前端驗證?我覺得試圖保持前端和後端的驗證是一樣的,可能會出現錯誤,而且還有一些工作。

編輯

雖然已經存在,因爲我喜歡它的一些更多的輸入問題的答案。人們正在使用什麼樣的定製解決方案或如何有效解決這個問題的想法都是受歡迎的。

+0

我想你可以在PHP中編寫代碼,生成JavaScript以將相同的服務器端規則應用於客戶端。 – GordonM

回答

1

您可以自己同步它。將laravel驗證規則傳遞給一個視圖並處理它們。有一些這樣的例子。

至於我,我通常會遇到完整的後端驗證與簡單的前端。只有最小和最大長度。 Front無法檢查值是否唯一。

https://dotdev.co/form-validation-using-vue-js-2-35abd6b18c5d#.q0r9nkibc

還有一個辦法,但它稍微增加服務器的負載。首先發送一個標誌爲validate=true的表格,該表格僅用於驗證表格。和第二個請求一樣,即驗證+操作。它需要一個簡單的js庫來處理它,而不是一個巨大的重構。

+0

這工作正常,當你正在一個小應用程序,但與一個巨大的應用程序與幾十個形式,其中事情變化了很多我真的沒有看到這是一個可行的選擇。如果我要改變前臺或後臺的某些東西,我會時刻記住要保持對方的更新,否則我會慢慢地在各地得到不一致的邏輯。即使我們只是在談論需求檢查等。這看起來像是一段時間內邏輯碎片化的頭痛。 –

+0

至於js驗證:*如果我要改變前端或後端的東西,我會不斷記得保持對方更新*爲什麼?你在一個地方有規則,如[「name」=>「required | max:10」],並將其傳遞給視圖。 –

+0

如果您將這些規則從PHP傳遞給JavaScript,則您已經爲其創建了一個目前尚未實現的系統。我希望這些規則也適用於Javascript驗證。如果在發送數據之前可以使用Javascript檢查驗證,則無需發送表單和浪費資源。 –