当用户输入的信息不符合验证规则,那么后台验证会有验证错误信息,注意我们并没有GET路由中明确绑定错误信息到视图,因此laravel总是从session中检查错误信息。
因此,每次请求所有的视图总是存放在一个$error中,从而允许你在视图中方便使用。
例如在视图文件中输出错误的信息:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
因此在输入错误验证信息时,会自动输出
注意:输出的是英文状态,对于大多数人是不懂英文的意思,因此我们需要把其改为中文状态
有两种改变方式:
1.第一种:
在我们的controller控制器中对validate()方法添加第三个参数用来输出错误后的验证信息:
$this->validate($request,[
'name'=>'required|min:2|max:6',
'age'=>'required|min:0|max:100|integer',
'email'=>'required|email'
],[
'name.required'=>'名字不能为空',
'name.min'=>'名字至少为2个字符',
'name.max'=>'名字最多为6个字符'
]);
页面显示错误信息
第一种方法还有一个弊端,在用户的信息偏多和条件偏多的时候,需要手动编写的错误信息会很多,这样麻烦且会增加代码量,因此下面介绍第二种方式
2.第二种
由于中文和英文都属于语言范畴,如果要切换语言提示,则需要有中文语言包的支持,目前laravel框架语言包只有en,因此需要下载中文语言包
这里注意:laravel框架的语言包存放在resources/lang文件目录下。
下载语言包网址:https://packagist.org
进入官网后,在官网搜索laravel-lang会出现下面的样式
点击红框进入,会有以下显示信息:
此信息是要在运行窗口进行运行,但是要注意你的的laravel版本,进行运行前可以先查看laravel的版本,通过
php artisan --version进行laravel版本的查看,如下图所示
显示laravel1版本是7.1.3,那么运行的命令就是
红框所圈出来的命令
注意:一定要根据自己的laravel版本进行运行命令的选择
运行需要等待一短时间,耐心等待,显示成功后去文件夹找到下载的语言包,如下图所示:
然后把此语言包复制到,上面所提到的laravel语言包的存放位置,下面是复制过后的语言包
语言包下载成功后,需要在配置文件中更改语言包的引用
在app.php中更改
'locale' =>'zh-CN',
其中zh-CN是上面所下载的语言包的文件名称
成功后,在输入信息错误后的提示会是中文提示,如下图所示注意:在表单提交所使用的name属性的名字必须是在validate.php中的attributes中所定义的名字,如果没有则需要自己手动定义(validate.php是下载语言包里面的,也就是zh-CN)