2016-10-31 17 views
0

我讀the laravel documentation,有大約驗證爲什麼laravel在控制器中定義驗證而不是Eloquent模型?

如果Web服務器將提供Web界面的桌面用戶,以及API接口向移動用戶的一些疑問,有一個問題:它會在API控制器兩次定義的驗證和網絡控制器,它是重複的。

而且如果有另一個合作開發商來開發一個大項目,他應該知道以前的開發人員定義的驗證,這是不利於協同開發

我認爲它應該在同一個地方定義的驗證邏輯,像Rails中的ActiveRecord一樣

回答

1

您可以在請求文件夾中創建一個請求文件並在控制器方法中注入此文件,它會自動驗證請求。請繼續閱讀Laravel驗證文檔here,您會發現這種方法精心製作。

+0

謝謝,我很抱歉仔細閱讀 – TangMonk

1

您可以向模型中添加一個方法,如'getValidator',它可以爲您提供驗證器,然後在控制器中您只需要這樣做。

然而驗證器大多數時間都想驗證(用戶)輸入的輸入。想象一下必須應用於多個模型或複雜關係的輸入。如果驗證確實是/ one模型的一部分,那將會很奇怪。最後它只是驗證輸入,所以你需要它在你的控制器。

在您的案例中抽象的更好方法可能是解釋「網絡」部分應用程序,它連接到您的API。然後讓API成爲與後端進行交互的唯一方式,從而僅在1個位置(API)進行驗證。

最後,它取決於你如何構造它。

相關問題