Проверка многомерных массивов Larave 6.x. Функция old () возвращает пустой массив после проверки - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть html -форма , которая содержит массивы. Он имеет такую ​​структуру:

"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 элементов, все проверяется очень хорошо (я вижу сообщения об ошибках ). Но когда я отправляю, например, такую ​​форму , данные не переносятся в хранилище, и я не могу получить их, используя функцию old(). Изображение . Некоторая отладочная информация:

[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.text, q.new.1.v.2.text, q.new.1.v.3.text, но это не дало особых результатов.

1 Ответ

0 голосов
/ 20 апреля 2020

Проблема была с местом хранения сессий по умолчанию. По умолчанию SESSION_DRIVER имеет значение cook ie (их размер ограничен). Поэтому я сменил драйвер на file и все работало правильно.

...