即后台验证数据的可效性,既展示视图,又进行处理
一:设计表单
路由写法:
Route::match(['get','post'],'index5', 'Home\IndexController@index5');
Controller写法:
//自动验证
public function index5(){
return view('Home/test/index5');
}
视图层:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="/Home/test/index4" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/>
年龄:<input type="text" name="age"><br/>
{{csrf_field()}}
<input type="submit" name=""><br/>
</form>
</body>
</html>
浏览器访问:
二:控制器方法验证
validate接收一个HTTP请求数据和验证规则,如果规则通过则继续向下执行,不通过则抛出异常,错误响应也会发给用户。
Input::method()获取请求的类型,GET或者POST
Controller修改:
语法: $this->validate(数据对象,[数组形式的验证规则]);
//自动验证
public function index5(Request $request){
if(Input::method()=="GET"){
//展示视图
return view('Home/test/index5');
}else{
//自动验证
$this -> validate($request,[
//具体规则 字符 => 验证规则1 | 验证规则2
//验证用户名不为空,且长度大于6小于18
'username' => 'required|min:6|max:18',
//验证年龄不能为空,且年龄大于16小于90,必须为整数
'age' => 'required|min:16|max:90|Integer',
//验证密码不为空,且长度大于6小于21
'password' => 'required|min:6|max:21'
]);
}
}
视图层修改:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors -> all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
</div>
@endif
<form action="" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/>
年龄:<input type="text" name="age"><br/>
{{csrf_field()}}
<input type="submit" name=""><br/>
</form>
</body>
</html>
浏览器运行,如果所有内容全为空提交:
三:修改中文
默认的错误提示是英文的,但如果想要修改成中文的话还需要下载一下中文语言包。
在网站根目录输入命令:composer require caouecs/laravel-lang:~3.0
等待下载完成后,在\vendor\caouecs\laravel-lang\src路径下的最后有一个zh-CN的文件夹。
复制文件夹到\resources\lang下
修改/config下的app.php文件,在80行左右的位置修改成我们下载的语言包名称 'locale' => 'zh-CN',
再次访问的时候即出现中文报错注释。