相关文章推荐
至今单身的风衣  ·  Getting Started | ...·  10 月前    · 
时尚的企鹅  ·  C/C++错误集_应输入类型说明符_weil ...·  2 年前    · 
千杯不醉的遥控器  ·  第四届吉利控股集团校企合作暨高校伙伴交流会成 ...·  2 年前    · 
礼貌的海龟  ·  nginx 配置 websocket ...·  2 年前    · 
Code  ›  3分钟短文 | Laravel 表单验证数组的数据开发者社区
数组 表单验证
https://cloud.tencent.com/developer/article/1690166
慷慨的丝瓜
2 年前
作者头像
程序员小助手
0 篇文章

3分钟短文 | Laravel 表单验证数组的数据

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 程序员小助手 > 3分钟短文 | Laravel 表单验证数组的数据

3分钟短文 | Laravel 表单验证数组的数据

作者头像
程序员小助手
发布 于 2020-09-01 11:41:30
2.4K 0
发布 于 2020-09-01 11:41:30
举报

引言

本文说一个小的知识点,在表单验证中,对数组数据进行验证, 我们需要进行两项,一项是数组本身的验证,一项是数组元素的验证。

学习时间

例如有一个POST请求过来的数据,由3个数组组成,name,amount,description。三个字段的验证需求如下:

  • name字段,必填,每个元素唯一,且至少有3个元素
  • amount字段,必填,元素要求都是整数,且最少有1个元素
  • description字段,必填,元素可有可无,且元素都是字符串。

明确了需求,我们发现上述的验证,laravel内置的规则基本可以解决。只是对于字段是数组,且数组长度满足某些条件的要求,有些苛刻。具体如何实现呢?

laravel表单验证规则中,使用星号,可以匹配数组的元素。那么对于name字段,我们的验证规则是这样的:

$validator = Validator::make($request->all(), [
    "name"    => "required|array|min:3",
    "name.*"  => "required|string|distinct|min:3",
]);

第一步验证name必填,必须为数组,且至少有3个元素;第二步,使用星号匹配所有的数组元素, 必填,字符串类型,唯一性。

那么这样,其他两个字段也很好实现了:

"amount"    => "required|array|min:1",
"amount.*"  => "required|integer|min:1",
"description"    => "required|array",
"description.*"  => "required|string",

前后端分离

对于当下前后端分离的开发模式,前端使用VUE网络请求传递过来的数据,如何验证呢?其实,如果相似的接口,上一节的方式也完全可用。但我们讨论一种更复杂一些的情形,比如表单传递过来的是这样的数组:

[0] => Array
        [item_id] => 1
        [item_no] => 3123
        [size] => 35
[1] => Array
        [item_id] => 2
        [item_no] => 7688
 
推荐文章
至今单身的风衣  ·  Getting Started | Messaging with JMS
10 月前
时尚的企鹅  ·  C/C++错误集_应输入类型说明符_weilan_QAQ的博客-CSDN博客
2 年前
千杯不醉的遥控器  ·  第四届吉利控股集团校企合作暨高校伙伴交流会成功举行!_手机新浪网
2 年前
礼貌的海龟  ·  nginx 配置 websocket 支持_51CTO博客_nginx websocket配置
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号