• [Laravel 5] 表单验证 Form Requests and Controller Validation


    本文 转载自:http://blog.hsin.tw/2015/laravel-5-note09-form-requests-and-controller-validation/   

    文章解答了我的困惑非常感谢原作者  我把原来的繁体字 改成了 简体

    在后端作表单验证 有两种方法
    第 1 种是使用 artisan 建立一个 request class 作验证   (手册里写的返回到Session 中 我不是非常理解 这篇文章解决勒沃的困惑)
    第 2 种是直接在 controller 的 method 里面作验证

    首先是第 1 种方式
    首先使用 artisan 建立 request 

    php artisan make:request CreateArticleRequest
    

    这条命令会创建这个文件

    app/Http/Requests/CreateArticleRequest.php

    class CreateArticleRequest extends Request {
     
        //验证用户权限  true 为有权限   有兴趣的可以改成false试试
        public function authorize()
        {
            return true;
        }
     
        // 这个地方填写表单验证规则
        public function rules()
        {
            return [
                'title' => 'required|min:3',
                'body' => 'required',
                'published_at' => 'required|date'
                 
            ];
        }
     
    }

    如果有不符合规则的字段
    他会输出 error 并回到原表单页
    所以 view 这边要再加上显示 error

    resources/views/articles/create.blade.php

        <!-- 这边省略了前一节讲的表单部份 -->
     
        <!-- 加上显示 error 可再依照需求作更动 -->
        @if ($errors->any())
            <ul class="alert alert-danger">
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
            </ul>
        @endif

    第二种方法 直接在 controller 里做验证

    // 这行要加上
    use IlluminateHttpRequest;
     
    class ArticlesController extends Controller {
     
        public function store(Request $request)
        {
            // 验证条件的写法跟前面的一样 有错误一样会导回原表单页并显示错误
            $this->validate($request, ['title'=>'required']);        
     
            Article::create($request->all());
            return redirect('articles');
        }
     
    }
  • 相关阅读:
    [转]wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 实例介绍
    [转]HTTPS连接的前几毫秒发生了什么
    将生成的数据写入文件
    linux查看网络监听端口
    [转] Linux下移动virtualbox虚拟硬盘丢失eth0
    sockaddr结构体
    以十六进制形式打印字符串
    pta5-9 Huffman Codes (30分)
    pat1068. Find More Coins (30)
    hduoj 2955Robberies
  • 原文地址:https://www.cnblogs.com/hook-life/p/4398452.html
Copyright © 2020-2023  润新知