欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

基于Laravel的validation实现表单验证 中文 汉化 自己亲自做的 有大用 有大大用 有大大大用

shiping1 的头像

我的方法 

1)config/app.php 中 locale改中文 'locale' => 'zh',

2)php artisan make:request NoticeRequest "创建表单请求"
public function rules(){ //这是定义验证规则

    return [
        'notice_title' => 'required|min:6',//这里是验证规则
    ];
}
3) app/Http/Controllers/NoticeController.php 中
 引入表单请求 use App\Http\Requests\NoticeRequest;
 然后 
public function store(NoticeRequest $request){............}
     public function update(NoticeRequest $request){............}
 php artisan make:request NoticeRequest
 php artisan make:request NoticeRequest
4)复制  resources/lang/en 文件 为 
resources/lang/zh
在 resources/lang/zh/validation.php 中 
'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
    //切记这个 notice_title数组 放在custom 数组的里面

    'notice_title' => [
        'required' => '标题不能为空',
    ],
],
 


在这篇文章中,我们力求通过一个简单的教程,在Laravel 5.1下实现表单校验,并且自定义错误信息,甚至可以基于本地语言显示不同的错误信息。

通过artisan创建控制器,对应 app\Http\Controller\WishController.php 这个文件:

编辑路由器 app\Http\routes.php ,添加对WishController的跳转:

修改WishController的create函数,添加代码跳转到视图:

新建 resources/views/wish/create.blade.php 视图文件,创建一个基本的表单:

这时候通过 http://localhost/wish/create 就可以访问表单,点击submit按钮,就会通过POST的方式提交到 http://localhost/wish/ 页面,接下来修改WishController的store函数,增加校验逻辑:

我们为表单subject字段增加了一个校验规则,要求这个字段必须填写,不能为空。如果用户提交表单的时候,这个字段为空,就会返回错误消息“ The subject field is required. ” 。默认错误信息是不会显示出来的,需要我们在表单最前面增加一段代码:

如果默认的错误信息不满足要求,我们还可以自定义错误信息:

如果很多表单里面都有这个字段,而且我们要赋予相同的错误提示,可以不用在每个页面都写相同的规则,这时候可以利用Laravel的Localization组件,编辑 resources/lang/en/validation.php 文件,修改custom字段:

这时可以将控制器中的required规则去掉,以后所有出现subject字段的required规则,都会显示这个错误信息。可这是英文的,如果我们希望显示中午的错误信息怎么办呢?先搞出一套中文的本地化配置文件:

然后编辑中文版本的校验配置文件 resources/lang/zh/validation.php ,同样修改custom字段,只是将错误信息修改成中文就好:

最后修改配置文件 config/app.php ,将当前的语言环境切换成中文:

至此,一个完整的表单校验逻辑就完成了,而且可以根据需要,显示不同语言的错误信息。对于校验规则,除了required,还有更多的规则,有待大家自己去探索。
参考资料

来自 http://mingda.net/2015/07/28/form-validation-on-laravel-5/
  •  


普通分类: