数组以多种形式存储在数组中

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

我正在单击按钮制作表单副本,我想将单个输入数据正确插入的所有表单数据存储在数据库中,但是对于检查的值如何存储?这就是我的表格的样子

我使用循环保存表单数据,所有数据都正确插入,因为它仅按顺序存储,但是如果选中第一个从第2个框,则如何保存它应该存储在数据库的第一行,同样是第二行

这是我的控制器代码

$customInputName = $request->input('customInputName');
        $inputType = $request->input('inputType');
        $checkedValues = $request->input('checkedValues');

        $customInputNameArray = json_decode($customInputName);
        $inputTypeArray = json_decode($inputType);
        $checkedValuesArray = json_decode($checkedValues);
        dd($checkedValuesArray);
        for ($i = 0; $i < count($customInputNameArray); $i++) {
            $customInput = new inputForm();
            $customInput->customInputName = $customInputNameArray[$i];
            $customInput->inputType = $inputTypeArray[$i];
            // $customInput->validation = $checkedValuesArray[$i];
            $customInput->eventid = $eventId;
            $customInput->save();
        }

我在所有表单的一个数组中获取所有检查值,我如何为两种表单制作不同的数组

ajax laravel database multidimensional-array store
1个回答
0
投票

如果您在前端仅使用 HTML 输入和 JavaScript 输入,请尝试将值存储在数组中。而不是在后端单独获取。

例如:

Inputs[]['customInputName']
Inputs[]['inputType']
Inputs[]['checkedValues'] // if check store by name e.g., Required

$inputs  = json_decode($request->input('Inputs'), 1);

默认情况下,如果您在第一个表单上选中了 Require,则应该对数组进行预排序,如果没有,则使用 Laravel Collect 或某些 PHP 函数对其进行排序

$inputs = usort($inputs, function ($a, $b){    
  return ($a['checkedValues'] == 'Required' && $a['checkedValues'] == 
  'Alphabets Only')
});

运行循环并存储,希望你明白了。

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