laravel基础--9.3 表格demo-数据验证、数据保持

最终效果

 

创建错误信息提示文件

 

valitade.blade.php
<!-- 所有的错误提示 -->
@if($errors->any())
{{--@if(count($errors))--}}

    {{--当前错误信息--}}
    <div class="alert alert-danger">
        <ul>

            <li>{{ $errors->first()  }}</li>

        </ul>
    </div>

    {{--所有错误信息--}}
    <div class="alert alert-danger">
        <ul>
            @foreach($errors -> all() as $error)
            <li>{{ $error  }}</li>
            @endforeach
        </ul>
    </div>
@endif
//模板继承
//create.blade.php

@extends('common.layouts')
@section('content')

@include('common.validate')
<!-- 自定义内容区域 -->
<div class="panel panel-default">
    <div class="panel-heading">新增学生</div>
    <div class="panel-body">
        {{--<form class="form-horizontal" method="post" action="{{ url('student/save') }}">--}}
        <form class="form-horizontal" method="post" action="">
            {{ csrf_field() }}

            <div class="form-group">
                <label for="name" class="col-sm-2 control-label">姓名</label>

                <div class="col-sm-5">
                    <input type="text" name="Student[name]" class="form-control" id="name"
                           value="{{ old('Student')['name'] }}" placeholder="请输入学生姓名">
                </div>
                <div class="col-sm-5">
                    <p class="form-control-static text-danger">{{ $errors->first('Student.name') }}</p>
                </div>
            </div>
            <div class="form-group">
                <label for="age" class="col-sm-2 control-label">年龄</label>

                <div class="col-sm-5">
                    <input type="text" name="Student[age]" class="form-control" id="age"
                           value="{{ old('Student')['age'] }}" placeholder="请输入学生年龄">
                </div>
                <div class="col-sm-5">
                    <p class="form-control-static text-danger">{{ $errors->first('Student.age') }}</p>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label">性别</label>

                <div class="col-sm-5">
                    <label class="radio-inline">
                        <input type="radio" name="Student[sex]" value="10"> 未知
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="Student[sex]" value="20"> 男
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="Student[sex]" value="30"> 女
                    </label>
                </div>
                <div class="col-sm-5">
                    <p class="form-control-static text-danger">{{ $errors->first('Student.sex') }}</p>
                </div>
            </div>
            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-primary">提交</button>
                </div>
            </div>
        </form>
    </div>
</div>
@stop

 

控制器方法

public function create(Request $request){

    if($request->isMethod('POST')){


        // 控制器验证
        /*$this->validate($request,[
            'Student.name'=> 'required|min:2|max:20',
            'Student.age'=> 'required|integer',
            'Student.sex'=> 'required|integer',
        ],[
            'required' => ':attribute 不能为空',
            'min' => ':attribute 最小长度2个字符',
            'max' => ':attribute 最大长度20个字符',
            'integer' => ':attribute 必须为整数',
        ],[
            'Student.name' => '姓名',
            'Student.age' => '年龄',
            'Student.sex' => '性别',
        ]);*/

        //Validator类验证  =====begin=======
        $validator = Validator::make($request->input(),[
            'Student.name'=> 'required|min:2|max:20',
            'Student.age'=> 'required|integer',
            'Student.sex'=> 'required|integer',
        ],[
            'required' => ':attribute 不能为空',
            'min' => ':attribute 最小长度2个字符',
            'max' => ':attribute 最大长度20个字符',
            'integer' => ':attribute 必须为整数',
        ],[
                'Student.name' => '姓名',
                'Student.age' => '年龄',
                'Student.sex' => '性别',
        ]);

        //数据保持
        if($validator->fails()){

            return redirect()->back()->withErrors($validator)->withInput();
        }
        
        //Validator类验证  =====begin=======

        $data = $request->input('Student');

        //使用create方法 涉及批量赋值 先设置黑名单($guarded) 或白名单 ($fillable)
        if(Student::create($data)){
            return redirect('student/index')->with('success','添加成功') ;

        }else{
            return redirect()->back() ;
        }
    }


    return view('student.create');
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章