1、在路由web.php上增加
Route::get('test/validator', 'PHPTestController@getValidator'); Route::post('test/validator', 'PHPTestController@postValidator');
2、增加視圖view :validator.php
<body> <div class="container"> <div class="row"> <div class="col-md-12"> @if(count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach($errors->all() as $error) <li>{{$error}}</li> @endforeach </ul> </div> @endif <form action="{{url('test/validator')}}" method="POST"> <input type="hidden" name="_token" value="{{csrf_token()}}"> <legend style="text-align: center">表單提交</legend> <legend style="text-align: center">Person</legend> <label style="margin-left: 50%">Name</label> <input type="text" name="name"> <label style="margin-left: 50%">Age</label> <input type="text" name="age"> <button type="submit" class="btn btn-success">Submit</button> </form> </div> </div> </div> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
3、在控制器上使用validate
class PHPTestController extends Controller { public function getValidator(){ return view('validator.validator'); } public function postValidator(Request $request){ $rules = [ 'name'=>'required|max:5', 'age'=>'min:5|max:20' ]; $message = [ 'name.max'=>'最多5個字符', 'age.min'=>'最小5歲' ]; $validator = $this->validate($request,$rules,$message);//驗證不通則終止后面的代碼,輸出驗收信息 dd('form post success!!!');//如果前面驗證通過則輸出這行 } }
如果是ajax請求則使用 validator類
public function postValidator(Request $request){ $rules = [ 'name'=>'required|max:5', 'age'=>'min:5|max:20' ]; $message = [ 'name.max'=>'最多5個字符', 'age.min'=>'最小5歲' ]; $validator = Validator::make($request->all(),$rules,$message); print_r($validator->errors()->all());exit; dd('form post success!!!'); }