首页 技术 正文
技术 2022年11月10日
0 收藏 808 点赞 2,136 浏览 1290 个字

做开发有个原则是永远不能信任用户输入的数据; 
即便前端已经做了验证; 
在后端 php 也必须要再次验证; 
laravel 为表单验证提供了强大且简单的方案; 
创建示例路由: 
routes/web.php

Route::prefix('validation')->group(function () {
Route::get('create', 'ValidationController@create');
Route::post('store', 'ValidationController@store');
Route::get('edit', 'ValidationController@edit');
Route::post('update', 'ValidationController@update');
});

PHP表单验证 ; 
要使用这个验证器也很简单; 
只需要在 store 方法的类型约束中使用 Store 即可;

use App\Http\Requests\Validation\Store;public function store(Store $request)
{
dump($request->all());
}

PHPlaravel-lang ;

composer require "overtrue/laravel-lang:~3.0"

BashCopy

在 config/app.php 文件中把 Illuminate\Translation\TranslationServiceProvider::class, 替换成 Overtrue\LaravelLang\TranslationServiceProvider::class,;
再次点击注册按钮就可以看到中文的提示信息了;

最适合入门的Laravel中级教程(三)表单验证

 

但是我们可以看到 tag 并没有被翻译出来; 
像这类非通用性的字段; 
我们可以在验证类 app/Http/Requests/Validation/Store.php 中定义 attributes 方法; 
在方法中以键值对的方式翻译字段;

public function attributes()
{
return [
'tag' => '标签',
];
}

PHPCopy

再次刷新页面;

最适合入门的Laravel中级教程(三)表单验证

 

标签是翻译过来了; 
但是我明明一个下拉选择标签但是提示却是输入类型的不能为空; 
叔可以忍婶婶是忍不了了; 
像这类情况我们还可以在验证类 app/Http/Requests/Validation/Store.php 中定义一个 messages 方法;
在方法中以字段拼接验证类型来翻译字段和验证类型的错误信息;

public function messages()
{
return [
'tag.required' => '必须选择标签',
];
}

PHPCopy最适合入门的Laravel中级教程(三)表单验证

 

泼飞克特; 
终于如愿以偿; 
验证失败的信息都是在 session 中存储; 
可以使用 session() 获取到失败的信息;

最适合入门的Laravel中级教程(三)表单验证

 

另外 laravel 还在 app/Http/Kernel.php 中注册了 ShareErrorsFromSession 中间件; 
它的作用是可以让我们在视图文件直接使用储存了错误信息的变量 $errors ;

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,990
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,504
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,348
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,132
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,765
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,843