按照文檔創建表單請求自定義類以后,調用總是403頁面,咨詢大佬說:
public function authorize() { // 在表單驗證類的這個方法這里要返回true,默認返回false,這個方法用來判斷用戶是否有權限使用 return true; }
然后在控制器內使用即可(記得提前引入):
/** * 存儲輸入的博客文章 * * @param StoreBlogPostRequest $request * @return Response */ public function store(StoreBlogPost $request){ // The incoming request is valid... // Retrieve the validated input data... $validated = $request->validated(); }
以下內容轉載自:https://laravelacademy.org/post/19465.html
命令行輸入:
php artisan make:request StoreBlogPost
生成的類位於 app/Http/Requests
目錄下,如果該目錄不存在,運行 make:request
命令時會替我們生成。
添加少許驗證規則到該類的 rules
方法:
/** * 獲取應用到請求的驗證規則 * * @return array */ public function rules(){ return [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]; }
那么,驗證規則如何生效呢?你所要做的就是在控制器方法中類型提示該請求類。這樣表單輸入請求會在控制器方法被調用之前被驗證,這就是說你不需要將控制器方法和驗證邏輯雜糅在一起:
/** * 存儲輸入的博客文章 * * @param StoreBlogPostRequest $request * @return Response */ public function store(StoreBlogPost $request){ // The incoming request is valid... // Retrieve the validated input data... $validated = $request->validated(); }
如果驗證失敗,重定向響應會被生成並將用戶退回上一個位置,錯誤信息也會被存儲到一次性 Session 以便在視圖中顯示。如果是 AJAX 請求,帶 422
狀態碼的 HTTP 響應將會返回給用戶,該響應數據中還包含了 JSON 格式的驗證錯誤信息。