语言包
一个表单我们可以这么设置,两个表单我们还能这么设置,但是如果一个项目十个八个表单,同样的东西我们岂不是要设置几百遍?难道没有更加简单的方法?答案是肯定的,有,使用语言包。
语言包的位置在resources/lang文件夹下,默认有一个语言包en,我们可以看到en下面有四个文件,分别是权限(auth.php),密码(passwords.php),分页(pagination.php)和验证(validation.php)。而我们需要修改的就是验证文件。
首先我们新建一个zh-CN文件夹,跟en平级,然后复制一个validation.php到zh-CN文件夹中,然后我们打开这个文件,我们会发现,这里很多验证规则,有熟悉的required、alpha_dash、min,也有不熟悉的array、date等,这里就是我们用到的验证规则以及对应的信息提示,我们只需要把对应的英文翻译为中文即可。
例如我们修改
'required' => ':attribute必须填写',
完成修改了,我们如何使用呢?此时就需要更改配置文件了。我们打开config/app.php,找到locale,把en改为我们新建的zh-CN。此时我们再次提交表单,我们发现并没有生效?仍然是用户名必填,而不是用户名必须填写?其实是因为我们已经建立了表单请求,表单请求的优先级高于语言包的设置,所以我们才会发现提示信息没有改变,我们先把表单请求中的设置注释了再来看看,此时我们发现提示信息已经改变了。
表单请求
public function messages()
{
return [
#'required'=>':attribute必填',
'alpha_dash'=>':attribute输入的字符必须是数字,字母,-或者_',
'min'=>':attribute不少于:min个字符',
];
}