【问题标题】:How to write validation rule for JSON laravel?如何为 JSON laravel 编写验证规则?
【发布时间】:2019-12-24 00:29:10
【问题描述】:

有一个我想要验证的 JSON 对象:

[{
  "id": 1,
  "settings": {
    "GRSYSEM": 1
  }
},
{
  "id": 2,
  "settings": {
    "GRSYSEM": 1
  }
},
{
  "id": 3,
  "settings": {
    "GRSYSEM": 1
  }
}
]

如何在 Laravel 中编写验证规则?

我试过这条规则:

$validator = Validator::make($request->all(), [
    'id' => 'required|array',
    'id.*' => 'required',
    'settings.*.GRSYSEM' => 'required'
]);

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    你快到了,只需将通配符*放在首位:

    $validator = Validator::make($request->all(), [
        '*.id' => 'required',
        '*.settings.GRSYSEM' => 'required'
    ]);
    

    字面意思是:对于数组中的每个元素,我期望一个 id 和一个设置 GRSYSEM

    您还可以通过一些小技巧来确保它是一个数组:

    $data = ['input' => $request->all()];
    
    $validator = Validator::make($data, [
        'input' => 'required|array',
        'input.*.id' => 'required',
        'input.*.settings.GRSYSEM' => 'required'
    ]);
    

    【讨论】:

      【解决方案2】:

      如果$request->all() 中的条目是 id(如我所见),您应该这样尝试:

      $validator = Validator::make($request->all(), [
          'id' => 'required|array',
          'id.*.id' => 'required',
          'id.*.settings.GRSYSEM' => 'required'
      ]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        • 2021-02-08
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        • 1970-01-01
        相关资源
        最近更新 更多