laravel表单验证

1.创建表单

    <!-- 此段代码会输出第一个错误信息 -->
    @if(count($errors))
        错误提示信息:{{$errors->first()}}
    @endif()
    
    
    <!-- 此段代码会循环输出错误信息 -->
    @if(count($errors))
        @foreach($errors->all() as $key=>$value)
            错误信息{{$key}}:{{$value}}<br />
        @endforeach
    @endif()
    
    
    <form name="create_from" method="post" action="{{url('student/create')}}">
        <!-- scrf生成令牌 -->
        @csrf
        <table>
            <tr>
                <td colspan="3">新增</td>
            </tr>
            <tr>
                <td>姓名</td>
                <td><input type="text" name="student[name]" id="name" value="{{old('student')['name']}}"></td>
                <td>{{ $errors->first('student.name') }}</td>   <!-- 单独显示某个字段的错误信息 -->
            </tr>
            <tr>
                <td>性别</td>
                <td>
                    <select name="student[sex]">
                        <option value="1"></option>
                        <option value="2"></option>
                    </select>
                </td>
                <td></td>
            </tr>
            <tr>
                <td>年龄</td>
                <td><input type="text" name="student[age]" id="age" value="{{old('student')['age']}}" maxlength="2"></td>
                <td>{{ $errors->first('student.age') }}</td>   <!-- 单独显示某个字段的错误信息 -->
            </tr>
            <tr>
                <td colspan="3">
                    <input type="submit" value="添加">
                </td>
            </tr>
        </table>
    </form>

 

2.校验数据

if($request->isMethod('POST')) {
    $validdtor = \Validator::make($request->post(), [
        'student.name'  => 'required|min:2|max:20',
        'student.age'   => 'required|integer',
        'student.sex'   => 'required|integer',
    ],[
        'required'  => ':attribute 不能为空',
        'min'       => ':attribute 输入内容过短',
        'max'       => ':attribute 输入内容过长',
        'integer'   => ':attribute 应为整数',
    ],[
        'student.name'  => '姓名',
        'student.sex'   => '性别',
        'student.age'   => '年龄',
    ]);
}

//判断是否失败
if ($validdtor->fails()){
    //返回到上次请求并返回错误信息
    return redirect()
        ->back()
        ->withErrors($validdtor)
        ->withInput();  //withInput与模板文件中的old方法配合使用,实现数据持久化
}


//输出第一个错误信息并返回json数据
//$errors     = $validdtor->errors();
//$error_msg  = $errors->first();     //获取第一个错误
//return response()->json(['code'=>400,'message'=>$error_msg]);

 

校验规则可以写到表单验证文件中,可以用命令创建文件:php artisan make:request student,该命令生成的文件目录为:app\Http\Requests,具体使用规则请查看文档。

其他校验方式请查看文档。

 

表单验证器文档:https://learnku.com/docs/laravel/8.x/validation/9374
csrf文档:https://learnku.com/docs/laravel/8.x/csrf/9367

 

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/facetwitter/p/15790097.html

posted @ 2022-01-11 21:08  saneim  阅读(231)  评论(0编辑  收藏  举报