Laravel自带表单验证规则详细说明

发布时间:2017-06-19 编辑:小张个人博客 查看次数:4961

Laravel后台验证规则:

传递给 make 函数的第一个参数是待验证的数据,第二个参数是对该数据需要应用的验证规则

多个验证规则可以通过 "|" 字符进行隔开,或者作为数组的一个单独的元素。

// 验证多个字段及验证规则
$rules = [
	'email' => 'required',
	'phone' => 'required|between:11,11',
	'address' => 'required',
	'description' =>'required',
	'slogan' =>'required',
];
$message = [
	'email.required' => '请填写Email!',
	'phone.required' => '请填写手机号!',
	'phone.between' => '手机号长度为11位!',
	'address.required' => '请填写地址!',
	'description.required' => '广告描述必填!',
	'slogan.required' => '请填写标语!'
];
$validator = Validator::make($data,$rules,$message);
if(!$validator ->passes()){
	return back()->withErrors($validator);
}

前端视图显示错误信息:

当验证失败,我们使用 withErrors 函数把 Validator 实例传递给 Redirect。

这个函数将刷新 Session 中保存的错误消息,使得在下次请求中能够可用。

@if(count($errors) >0)
    @foreach($errors->all() as $error)
	<p style="text-align: center;color: red;">  {{$error}}    </p>
    @endforeach
@endif

下面是一个所有可用的验证规则的列表以及它们的功能:

accepted

验证此规则的值必须是 yes、 on 或者是 1。这在验证是否同意"服务条款"的时候非常有用。

active_url

验证此规则的值必须是一个合法的 URL,根据 PHP 函数 checkdnsrr。

after:date

验证此规则的值必须在给定日期之后,日期将通过 PHP 函数 strtotime 传递。

alpha

验证此规则的值必须全部由字母字符构成。

alpha_dash

验证此规则的值必须全部由字母、数字、中划线或下划线字符构成。

alpha_num

验证此规则的值必须全部由字母和数字构成。

before:date

验证此规则的值必须在给定日期之前,日期将通过 PHP 函数 strtotime 传递。

between:min,max

验证此规则的值必须在给定的 min 和 max 之间。字符串、数字以及文件都将使用大小规则进行比较。

confirmed

验证此规则的值必须和 foo_confirmation 的值相同。比如,需要验证此规则的域是 password,那么在输入中必须有一个与之相同的 password_confirmation 域。

date

验证此规则的值必须是一个合法的日期,根据 PHP 函数 strtotime。

date_format:format

验证此规则的值必须符合给定的 format 的格式,根据 PHP 函数 date_parse_from_format。

different:field

验证此规则的值必须与指定的 field 域的值不同。

email

验证此规则的值必须是一个合法的电子邮件地址。

exists:table,column

验证此规则的值必须在指定的数据库的表中存在。

Exists 规则的基础使用

代码如下:

'state' => 'exists:states'


指定列名

代码如下:

'state' => 'exists:states,abbreviation'


您也可以指定更多的条件,将以 "where" 的形式添加到查询。

代码如下:

'email' => 'exists:staff,email,account_id,1'

image

验证此规则的值必须是一个图片 (jpeg, png, bmp 或者 gif)。

in:foo,bar,...

验证此规则的值必须在给定的列表中存在。

integer

验证此规则的值必须是一个整数。


验证此规则的值必须是一个合法的 IP 地址。

max:value

验证此规则的值必须小于最大值 value。字符串、数字以及文件都将使用大小规则进行比较。

mimes:foo,bar,...

验证此规则的文件的 MIME 类型必须在给定的列表中。

MIME 规则的基础使用

代码如下:

'photo' => 'mimes:jpeg,bmp,png'

min:value

验证此规则的值必须大于最小值 value。字符串、数字以及文件都将使用大小规则进行比较。

not_in:foo,bar,...

验证此规则的值必须在给定的列表中不存在。

numeric

验证此规则的值必须是一个数字。

regex:pattern

验证此规则的值必须符合给定的正则表达式。

注意: 当使用 regex 模式的时候,有必要使用数组指定规则,而不是管道分隔符,特别是正则表达式中包含一个管道字符的时候。

required

验证此规则的值必须在输入数据中存在。

required_if:field,value

当指定的域为某个值的时候,验证此规则的值必须存在。

required_without:foo,bar,...

仅当指定的域不存在的时候,验证此规则的值必须存在。

same:field

验证此规则的值必须与给定域的值相同。

size:value

验证此规则的值的大小必须与给定的 value 相同。对于字符串,value 代表字符的个数;对于数字,value 代表它的整数值,对于文件,value 代表文件以KB为单位的大小。

unique:table,column,except,idColumn

验证此规则的值必须在给定的数据库的表中唯一。如果 column 没有被指定,将使用该域的名字。

Unique 规则的基础使用

代码如下:

'email' => 'unique:users'

指定列名

'email' => 'unique:users,email_address'

强制忽略一个给定的 ID

'email' => 'unique:users,email_address,10'

url

验证此规则的值必须是一个合法的 URL。


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号