【问题标题】:Array laravel validation " * " returns true数组 laravel 验证“*”返回 true
【发布时间】:2020-04-02 21:08:51
【问题描述】:

我正在尝试验证一个数组
数组:

location_id: [
     {id: 1, name: "Line 1"}, 
     {id: 2, name: "Line 2"}, 
     {id: 3, name: "Flex 1"}, 
     {id: 4, name: "Flex 2"}
],
name: "Failure 1",
station_id: [
     {id: 1, name: "Station 1"}, 
     {id: 2, name: "Station 2"}
]

当数据发送到服务器时,它返回 true
验证码:

 $rules = [
     'location_id.*.id'  =>  'required',
     'station_id.*.id'  =>   'required'
 ];

 Validator::make($request->all(),$rules)->passes());

如果数组location_id 为空,它应该返回falselocation_id[0].id == null,但如果数组发送为空,则返回true

如果以下列方式指定规则,它会起作用,但有时我会在 location_idstation_id 内添加 2,3 个或更多数组

 $rules = [
     'location_id.0.id'  =>  'required',
     'station_id.0.id'  =>   'required'
 ];

【问题讨论】:

  • 您可以改用filled 验证。
  • 不工作:(
  • 输入中没有空id?

标签: laravel validation vue.js post request


【解决方案1】:

试试这个规则

$rules = [
     'location_id'  =>  'required|array|min:1',
     'location_id.*.id'  =>   'required',
     'station_id.*.id'  =>   'required'
];

如果您想返回false,则将'station_id' => 'required|array|min:1' 添加到$rules,如果station_id 为空。

【讨论】:

  • 让我试试吧!
猜你喜欢
  • 1970-01-01
  • 2016-07-31
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多