zoukankan      html  css  js  c++  java
  • Laravel 表单验证创建“表单请求”实现自定义请求类

      按照文档创建表单请求自定义类以后,调用总是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 格式的验证错误信息。

  • 相关阅读:
    词典 字符串+DP
    N 色球 数学
    loj6482. LJJ 爱数数
    loj2671. 「NOI2012」骑行川藏
    无标号生成树计数
    uoj272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
    uoj328. 【UTR #3】量子破碎
    loj6402. yww 与校门外的树
    loj6674. 赛道修建
    06:MySQL分组查询子查询笔记6
  • 原文地址:https://www.cnblogs.com/xiaqiuchu/p/11414320.html
Copyright © 2011-2022 走看看