【问题标题】:Larave 6.x multidimensional arrays validation. old() function return empty array after validationLaravel 6.x 多维数组验证。奇数()函数验证后返回空数组
【发布时间】:2020-05-23 01:51:19
【问题描述】:

我有包含数组的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】:

    问题在于存储会话的默认位置。默认情况下,SESSION_DRIVER 是 cookie(它们的大小是有限的)。因此,我将驱动程序更改为file,并且一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 2020-08-06
      • 2016-07-31
      • 2020-04-02
      • 1970-01-01
      • 2020-05-05
      • 2014-01-28
      • 2021-07-02
      相关资源
      最近更新 更多