最近使用laravel 框架做了一个后台管理的一个项目。
项目中碰到最多的就是对表单提交的数据验证,laravel框架自带验证的中间件(个人挺喜欢用laravel的)。
一、验证email方法及注意
其中再验证email时,在网上看了不少 ,大部分写法都差别多。
email : 验证的字段必须符合 e-mail 地址格式。
这一点不要忽略
exists:table,column
验证的字段必须存在于给定的数据库表中。
Exists 规则的基本使用方法
'em' => 'exists:em'
如果你需要指定 exists 方法用来查询的数据库。你可以通过使用点语法将数据库的名称添加到数据表前面来实现这个目的:
'email' => 'exists:connection.staff,email'
如果要自定义验证规则执行的查询,可以使用 Rule 类来定义规则。
在这个例子中,我们使用数组指定验证规则,而不是使用 | 字符来分隔它们:
use Illuminate\Validation\Rule;
Validator::make($data, [
'email' => [
'required',
Rule::exists('staff')->where(function ($query) {
$query->where('account_id', 1);
}),
],
]);
二、验证正则表达式
验证正则表达式使用 : regex:pattern
但是,特别要注意的是正确的使用:
注意: 当使用 regex 规则时,你必须使用数组,而不是使用 | 分隔符,特别是如果正则表达式包含 | 字符。