laravel开发:如何使用laravel validation验证请求数据?
Laravel作为目前最流行的PHP框架之一,其原因之一就在于它提供了很多优秀的组件,其中之一是Laravel Validation。在Web开发过程中,我们常常需要验证从前端提交的数据是否符合规范,如表单提交等,这时候就需要使用Laravel Validation组件来进行数据验证。
本文将介绍Laravel Validation的基本用法及示例。
引入Validation在Controller中引入Validator:
1
use IlluminateSupportFacadesValidator;
Laravel Validation支持多种不同的验证规则,包括必填、邮箱、日期等。我们可以根据需求进行选择。下表列举了一些常用的规则:
规则 说明 required 必填 email 邮箱格式 date 日期格式 regex 正则匹配 max 最大长度 min 最小长度 验证器构造 使用Validator门面的make方法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function validate(Request $request)
{
$validator = Validator::make($request->all(), [
name => required|max:255,
email => required|email|unique:users|max:255,
password => required|min:6|max:255,
]);
if ($validator->fails()) {
return redirect(register)
->withErrors($validator)
->withInput();
}
// 验证通过,执行代码
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function rules()
{
return [
name => required|max:255,
email => required|email|unique:users|max:255,
password => required|min:6|max:255,
];
}
public function register(Request $request)
{
$this->validate($request, $this->rules());
// 验证通过,执行代码
}
如果验证失败,可以通过withErrors方法来获取错误信息,如:
1
2
3
4
5
if ($validator->fails()) {
return redirect(register)
->withErrors($validator)
->withInput();
}
然后在视图中调用$errors变量即可获取对应错误信息:
1
2
3
4
5
@if ($errors->has(name))
<span class="help-block">
<strong>{{ $errors->first(name) }}</strong>
</span>
@endif
在验证器构造的第二个参数中,可以通过设置自定义错误信息来对验证错误进行更加具体的提示,如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public function rules()
{
return [
name => required|max:255,
email => required|email|unique:users|max:255,
password => required|min:6|max:255,
];
}
public function messages()
{
return [
name.required => 名称不能为空,
email.required => 邮箱不能为空,
email.email => 请输入正确的邮箱地址,
email.unique => 该邮箱已经被注册,
password.required => 密码不能为空,
password.max => 密码长度不能超过:max个字符,
];
}
public function register(Request $request)
{
$validator = Validator::make($request->all(), $this->rules(), $this->messages());
if ($validator->fails()) {
return redirect(register)
->withErrors($validator)
->withInput();
}
// 验证通过,执行代码
}
本文以上述代码为例进行了Laravel Validation的基本介绍,希望本文能够帮助到大家。
参考资料:
《Laravel框架》
以上就是Laravel开发:如何使用Laravel Validation验证请求数据?的详细内容,更多请关注php中文网其它相关文章!