2016-07-13 118 views
0

我在控制器層之前有請求層來驗證規則並從輸入中獲取正確的數據,但是放置檢查權限的位置是否正確? 例如,如果用戶想要更新其配置文件與API user?user_id=1與PUT方法 我想檢查登錄用戶ID與user_id參數,如果我把它放在請求層我應該使用模型在請求層方面是否正確的編程結構?如果不是,它的位置在哪裏?Laravel 5檢查權限

回答

1

如果你把這種邏輯放在你的請求中,這將明顯違反SRP。請求抽象層負責讀取輸入數據並以可讀形式將其序列化。

控制器有責任讓用戶的輸入改變模型層的狀態,有時還會改變相關的視圖層。所以控制器不能驗證用戶的輸入。

因此,您的驗證將存在於模型層。這些層負責域邏輯,並且是所有相關驗證都發生的地方。

我建議你閱讀兩遍this的文章。也試着更多SOLID並開始實施像dependency injection