【问题标题】:Laravel 8: Validate a blank JSONLaravel 8:验证空白 JSON
【发布时间】:2021-09-08 18:09:53
【问题描述】:

我有这个 [ ] 空白 JSON,我在 laravel 验证中的问题是将它视为一个字符串。这是我的验证代码。

 $request->validate([
    'liquidationTable'=>'required',
    'file'=>'required',
  ]);

我看到了与此类似的问题,但答案对我不起作用。请帮帮我。

下面是有数据时的示例数据。

【问题讨论】:

  • 如果有数据,你能展示一下它的外观吗
  • 我上传了一些图片,先生,
  • 试试我的答案是否有效
  • 它可以工作,但是当我添加数据时它说需要数组清算表必须是一个数组。
  • 你能说出验证的具体要求吗

标签: laravel validation laravel-8


【解决方案1】:

我认为你可以使用array min

 'liquidationTable'=>'required|array|min:1',

或使用自定义验证

$this->validate($request,[
          'liquidationTable'=>['required',function ($attribute, $value, $fail) {
                  $liquidationTable=json_decode($value);

               if (json_last_error() != JSON_ERROR_NONE || count($liquidationTable)==0) {
                  $fail('The '.$attribute.' is invalid.');
              }
          }],

      ],[
          'liquidationTable.required'=>'custom message',
        
      ]);

【讨论】:

  • 谢谢你的帮助,意义重大
【解决方案2】:

您发送的不是 JSON,而是一个数组,因为“[]”将通过所需的检查。

您可以使用“当前”验证规则: https://laravel.com/docs/8.x/validation#rule-present

验证中的字段必须存在于输入数据中,但可以 为空。

 'liquidationTable' => 'present'

此外,您可以使用此规则验证 JSON(如果您要发送 JSON): https://laravel.com/docs/8.x/validation#rule-json

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 2016-03-03
    • 2021-08-12
    • 2022-01-19
    • 2013-05-18
    • 2017-09-24
    • 2019-08-15
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多