Larave 6.x多维数组验证。 old()函数在验证后返回空数组

问题描述 投票:0回答:1

我有html-form包含数组。它具有这样的结构:

"q" => array:1 [▼
  "new" => array:1 [▼
    1 => array:2 [▼
      "name" => "a"
      "v" => array:2 [▼
        1 => array:1 [▼
          "text" => "b"
        ]
        2 => array:1 [▼
          "text" => "c"
        ]
      ]
    ]
  ]
]

我已经创建了表单请求。现在它有一条规则:

'q.new.*.v.*.text' => 'required|min:2|max:128'

你知道吗?有时可以。当q.new.*.v数组包含少于4个元素时,所有内容都可以很好地验证(我可以看到error messages)。但是当我发送例如such form时,数据没有刷新到存储中,我无法使用old()函数进行检索。 Image。一些调试信息:

[2020-02-06 22:37:51] local.INFO: Request all in form request: Array
(
    [q] => Array
        (
            [new] => Array
                (
                    [1] => Array
                        (
                            [name] => a
                            [v] => Array
                                (
                                    [1] => Array
                                        (
                                            [text] => b
                                        )

                                    [2] => Array
                                        (
                                            [text] => c
                                        )

                                    [3] => Array
                                        (
                                            [text] => d
                                        )

                                    [4] => Array
                                        (
                                            [text] => e
                                        )

                                )

                        )

                )

        )

)
[2020-02-06 22:37:51] local.INFO: Old() in form request: Array
(
)
[2020-02-06 22:37:51] local.INFO: Old in controller after redirect: Array
(
)
[2020-02-06 22:37:51] local.INFO: Request all in controller after redirect: Array
(
)

我已经尝试将q.new.*.v.*.text转换为q.new.1.v.1.textq.new.1.v.2.textq.new.1.v.3.text的数组,但是结果不多。

arrays laravel-6 laravel-validation laravel-session
1个回答
0
投票

问题出在默认的会话存储位置。默认情况下,SESSION_DRIVER是cookie(其大小是有限的)。因此,我已将驱动程序更改为file,并且都以正确的方式工作。

© www.soinside.com 2019 - 2024. All rights reserved.