【问题标题】:validated multiple nested array items in laravel在 laravel 中验证多个嵌套数组项
【发布时间】:2023-01-03 15:47:55
【问题描述】:

我有一个嵌套数组来验证我查看了其他问题并验证了它。但是当我像下面这样对数组进行倍增时,我的问题就开始了:

{
    "items": [
      {
            "sender": {
                "firstName": "firstName",
                "lastName": "lastName",


            },
            "items": [
                {
                    "weight": {
                        "value": 1000
                    }
                }
            ]
        },
            {
            "sender": {
                "firstName": "firstName",
                "lastName": "lastName",


            },
            "items": [
                {
                    "weight": {
                        "value": 1000
                    }
                }
            ]
        }
    ]
}

现在我要做的是验证senders 和value 是否存在并检查它们的类型。 到目前为止我尝试过的是: 首先,我将 $data = $request->get('items'); 发送给验证器,然后。

    public function rules()
    {
        return [
            "sender.*.firstName" => "required|string|max:17",

但我总是在验证时收到此错误:

{
    "detail": "",
    "message": {
        "sender.lastName.firstName": [
            "sender.lastName.firstName is required."
        ],

你能给我一些建议我应该如何验证那个数组吗??谢谢

【问题讨论】:

  • 它是items.*.sender.firstName 你必须把 * 放在数组所在的位置。
  • 它不起作用,当我得到 $data 时,items 索引已被删除。
  • 那么它不应该被删除。您可以尝试*.sender.firstName,但我不确定它是否会起作用,我认为它需要一个顶层字段
  • 好的,谢谢,一切正常:))你可以回答我接受你的

标签: php laravel validation


【解决方案1】:

它是items.*.sender.firstName。您必须将 * 放在数组所在的位置

您不应从数据中删除项目。

您可以尝试*.sender.firstName,但我不确定它是否有效,我认为它需要一个顶层字段

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 2019-04-15
    • 2019-07-25
    • 2016-08-21
    • 2013-08-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多