php Laravel框架 使用validate进行验证

第一步 创建两个路由一个get一个post
在这里插入图片描述

然后在控制器创建方法
在这里插入图片描述
创建视图界面

在这里插入图片描述

里面的input可以根据自己的需要进行更改

this>validate(this->validate(request,[
‘email’=>‘required|email’, //不能为空 邮箱格式
‘name’=>‘required|min:2|max:6’, //不能为空 最小2 最大6
‘age’=>‘required|integer|between:0,100’, // 不能为空 整数 在0~100之间
]);

前面的email name age 是界面上的name里的值

后面的是验证

然后再视图界面添加

Create Post

@if (count(errors)>0)<divclass="alertalertdanger"><ul>@foreach(errors) > 0) <div class="alert alert-danger"> <ul> @foreach (errors->all() as $error)

  • {{ $error }}

  • @endforeach

    @endif

    让错误信息可以在界面上显示出来

    such as:

    在这里插入图片描述
    最后从控制器添加一句

    return ‘success!’;

    用来反馈成功时跳转页面的输出

    在这里插入图片描述
    格式全部输入正确
    成功
    在这里插入图片描述

    附录:

    所有的验证规则

    accepted
    在验证中该字段的值必须是yes、on、1或true,这在“同意服务协议”时很有用。

    active_url
    该字段必须是一个基于PHP函数checkdnsrr 的有效URL

    after:date
    该字段必须是给定日期后的一个值,日期将会通过PHP函数strtotime传递:

    ‘start_date’ => ‘required|date|after:tomorrow’
    你可以指定另外一个比较字段而不是使用strtotime验证传递的日期字符串:

    ‘finish_date’ => ‘required|date|after:start_date’
    alpha
    该字段必须是字母

    alpha_dash
    该字段可以包含字母和数字,以及破折号和下划线

    alpha_num
    该字段必须是字母或数字

    array
    该字段必须是PHP数组

    before:date
    验证字段必须是指定日期之前的一个数值,该日期将会传递给PHP strtotime函数。

    between:min,max
    验证字段尺寸在给定的最小值和最大值之间,字符串、数值和文件都可以使用该规则

    boolean
    验证字段必须可以被转化为boolean,接收true, false, 1,0, “1”, 和 "0"等输入。

    confirmed
    验证字段必须有一个匹配字段foo_confirmation,例如,如果验证字段是password,必须输入一个与之匹配的password_confirmation字段

    date
    验证字段必须是一个基于PHP strtotime函数的有效日期

    date_format:format
    验证字段必须匹配指定格式,该格式将使用PHP函数date_parse_from_format进行验证。你应该在验证字段时使用date或date_format

    different:field
    验证字段必须是一个和指定字段不同的值

    digits:value
    验证字段必须是数字且长度为value指定的值

    digits_between:min,max
    验证字段数值长度必须介于最小值和最大值之间

    dimensions
    验证的图片尺寸必须满足该规定参数指定的约束条件:

    ‘avatar’ => ‘dimensions:min_width=100,min_height=200’

    有效的约束条件包括:min_width, max_width, min_height, max_height, width, height, ratio

    ratio约束应该是宽度/高度,这可以通过表达式3/2或浮点数1.5来表示:

    ‘avatar’ => ‘dimensions:ratio=3/2’

    distinct
    处理数组时,验证字段不能包含重复值:

    ‘foo.*.id’ => ‘distinct’

    email
    验证字段必须是格式化的电子邮件地址

    exists:table,column
    验证字段必须存在于指定数据表

    基本使用:

    ‘state’ => ‘exists:states’
    指定自定义列名:

    ‘state’ => ‘exists:states,abbreviation’
    还可以添加更多查询条件到where查询子句:

    ‘email’ => ‘exists:staff,email,account_id,1’

    这些条件还可以包含!:

    ‘email’ => ‘exists:staff,email,role,!admin’

    还可以传递NULL或NOT NULL到where子句:

    ‘email’ => ‘exists:staff,email,deleted_at,NULL’
    ‘email’ => ‘exists:staff,email,deleted_at,NOT_NULL’

    有时,你可能需要为exists查询指定要使用的数据库连接,这可以通过在表名前通过.前置数据库连接来实现:

    ‘email’ => ‘exists:connection.staff,email’

    file
    该验证字段必须是上传成功的文件

    filled
    该验证字段如果存在则不能为空

    image
    验证文件必须是图片(jpeg、png、bmp、gif或者svg)

    in:foo,bar…
    验证字段值必须在给定的列表中

    in_array:另一个字段
    验证字段必须在另一个字段中存在

    integer
    验证字段必须是整型

    ip
    验证字段必须是IP地址

    JSON
    验证字段必须是有效的JSON字符串

    max:value
    验证字段必须小于等于最大值,和字符串、数值、文件字段的size规则一起使用

    mimetypes:text/plain…
    验证文件必须匹配给定的MIME文件类型之一:

    ‘video’ => ‘mimetypes:video/avi,video/mpeg,video/quicktime’

    为了判断上传文件的MIME类型,框架将会读取文件内容来猜测MIME类型,这可能会和客户端MIME类型不同。

    mimes:foo,bar,…
    验证文件的MIMIE类型必须是该规则列出的扩展类型中的一个

    MIMIE规则的基本使用:

    ‘photo’ => ‘mimes:jpeg,bmp,png’
    尽管你只需要指定扩展,该规则实际上验证的是通过读取文件内容获取到的文件MIME类型。
    完整的MIME类型列表及其相应的扩展可以在这里找到:http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

    min:value
    验证字段的最小值,对字符串、数值、文件字段而言,和size规则使用方式一致。

    nullable
    验证字段必须为null,这在验证一些可以为null的原生数据如整型或字符串时很有用。

    not_in:foo,bar,…
    验证字段值不在给定列表中

    numeric
    验证字段必须是数值

    present
    验证字段必须出现在输入数据中但可以为空。

    regex:pattern
    验证字段必须匹配给定正则表达式

    注:使用regex模式时,规则必须放在数组中,而不能使用管道分隔符,尤其是正则表达式中使用管道符号时。

    required
    输入字段值不能为空,以下情况字段值都为空:

    值为null
    值是空字符串
    值是空数组或者空的Coutable对象
    值是上传文件但路径为空
    required_if:anotherfield,value,…
    验证字段在另一个字段等于指定值value时是必须的

    required_unless:anotherfield,value,…
    除了 anotherfield 字段等于value,验证字段不能空

    required_with:foo,bar,…
    验证字段只有在任一其它指定字段存在的话才是必须的

    required_with_all:foo,bar,…
    验证字段只有在所有指定字段存在的情况下才是必须的

    required_without:foo,bar,…
    验证字段只有当任一指定字段不存在的情况下才是必须的

    required_without_all:foo,bar,…
    验证字段只有当所有指定字段不存在的情况下才是必须的

    same:field
    给定字段和验证字段必须匹配

    size:value
    验证字段必须有和给定值value相匹配的尺寸,对字符串而言,value是相应的字符数目;对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数

    string
    验证字段必须是字符串

    timezone
    验证字符必须是基于PHP函数timezone_identifiers_list的有效时区标识

    unique:table,column,except,idColumn
    验证字段在给定数据表上必须是唯一的,如果不指定column选项,字段名将作为默认column。

    指定自定义列名:

    ‘email’ => ‘unique:users,email_address’
    自定义数据库连接

    有时候,你可能需要自定义验证器生成的数据库连接,正如上面所看到的,设置unique:users作为验证规则将会使用默认数据库连接来查询数据库。要覆盖默认连接,在数据表名后使用“.”指定连接:

    ‘email’ => ‘unique:connection.users,email_address’
    强制一个唯一规则来忽略给定ID:

    有时候,你可能希望在唯一检查时忽略给定ID,例如,考虑一个包含用户名、邮箱地址和位置的”更新属性“界面,当然,你将会验证邮箱地址是唯一的,然而,如果用户只改变用户名字段而并没有改变邮箱字段,你不想要因为用户已经拥有该邮箱地址而抛出验证错误,你只想要在用户提供的邮箱已经被别人使用的情况下才抛出验证错误,要告诉唯一规则忽略用户ID,可以传递ID作为第三个参数:

    ‘email’ => ‘unique:users,email_address,’.$user->id

    如果你的数据表使用主键字段不是id,可以指定第四个输入参数:

    ‘email’ => ‘unique:users,email_address,’.$user->id.’,user_id’

    添加额外的where子句:

    还可以指定更多条件给where子句:

    ‘email’ => ‘unique:users,email_address,NULL,id,account_id,1’

    在上述规则中,只有account_id为1记录才会进行唯一性检查。

    url
    验证字段必须是基于PHP函数filter_var过滤的的有效URL

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章