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');
}

 

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