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