「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」
表单验证
怎么设置动态的验证规则?
如果我们的限制规则是动态依赖于其他条件的,那么我们可以动态地创建规则数组
1 | php复制代码 public function save(Request $request) |
自定义抛出422状态码
如果我们不使用 validate () 或 Form Request,但仍然需要使用相同的 422 状态码和错误结构抛出错误,那么可以手动抛出 throw ValidationException::withMessages()
这个功能真的是用不到的时候没感觉,用到的时候觉得真优雅~
1 | php复制代码if (! $user || ! Hash::check($request->password, $user->password)) { |
图片验证
我们在验证上传的图片时,可以指定所需的尺寸
1 | css复制代码['image' => 'dimensions:max_width=1096,max_height=1096'] |
自定义验证错误的信息
我们只需在 resources/lang/xx/validation.php
文件创建适当的数组结构,就可以定义每个 字段、规则和语言的验证错误消息。
1 | dart复制代码'custom' => [ |
某些条件的验证规则
如果验证规则依赖于某些条件,则可以通过将 withValidator() 添加到 FormRequest 类中来修改规则,并在那里指定自定义逻辑。
例如,如果我们只想为某些用户角色添加验证规则。
1 | scala复制代码use Illuminate\Validation\Validator; |
更改默认验证消息
如果要更改特定字段和特定验证规则的默认验证错误消息,只需将 messages() 方法添加到 FormRequest 类中。
1 | php复制代码class UserRequest extends FormRequest |
预验证
我们想在默认的 Laravel 验证之前修改某个字段,(类似常用的beforeXxx(){}、afterXxx(){})
FormRequest 类中有一个方法 prepareForValidation () , 能实现我们的需求:
在验证之前修改字段
1 | php复制代码protected function prepareForValidation() |
第一次验证错误时就终止程序
默认情况下,将在列表中返回 Laravel 验证错误,检查所有验证规则。
但是如果我们想要在第一个错误之后终止这个过程,使用验证规则叫做 bail:
1 | dart复制代码$request->validate([ |
Last but not least
技术交流群请到 这里来。 或者添加我的微信 wangzhongyang0601 ,一起学习一起进步。
感谢大家的点赞、评论、关注;谢谢大佬们的支持,感谢 ღ( ´・ᴗ・` )比心
本文转载自: 掘金