【问题标题】:How to pass array in Custom validation in Laravel 5.5如何在 Laravel 5.5 的自定义验证中传递数组
【发布时间】:2020-03-26 21:30:37
【问题描述】:

我在自定义验证中传递了一个数组booking_type_all 参数。
它给出了错误:

数组到字符串的转换

如何传递数组?

$validatedData = Validator::make($request->all(),[
        'couponcode' => 'validcoupon:$request->booking_type_all,
    ]);

数组booking_type_all:

array:1 [
  "TOURS" => array:1 [
    0 => "99848892-8617-41b9-808c-c44ca529d4e1"
  ],
  "VEHICLE" => array:1 [
    0 => "99848892-8617-41b9-808c-c44ca529d4e2"
  ]
]

【问题讨论】:

    标签: php laravel laravel-5 laravel-validation


    【解决方案1】:

    我不确定您是否理解此处的“自定义验证”概念。我建议您通过documentation here 彻底了解它。

    简而言之,当您创建自定义验证规则时,最好是“使用规则对象”,您的规则将开始工作,与所需的内置验证规则、可为空等工作完全相同。

    因此,您提供整个request 进行验证,并作为键提供要验证的变量的名称,作为值提供要在该变量上验证的规则。

    您不需要为特定的自定义验证提供特定的数组。

    所以你会做这样的事情:

    $validatedData = Validator::make($request->all(),[
        'booking_type_all' => 'validcoupon',
    ]);
    

    其中validcoupon 是一个自定义规则,用于验证请求负载中存在的数组booking_type_all

    或者

    如果您只想验证 booking_type_all 数组中存在的键,并且它包含一些像 couponcode 之类的键,您已经为其创建了自定义验证,那么您可以这样做:

    $validatedData = Validator::make($request->booking_type_all,[
        'couponcode' => 'validcoupon',
    ]);
    

    在这种情况下,您不需要关心完整的请求负载,因为您只关心其中的 booking_type_all 数组。

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 2018-08-21
      • 1970-01-01
      • 2018-05-25
      • 2018-06-05
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多