我正在单击按钮制作表单副本,我想将单个输入数据正确插入的所有表单数据存储在数据库中,但是对于检查的值如何存储?这就是我的表格的样子
我使用循环保存表单数据,所有数据都正确插入,因为它仅按顺序存储,但是如果选中第一个从第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();
}
我在所有表单的一个数组中获取所有检查值,我如何为两种表单制作不同的数组
如果您在前端仅使用 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')
});
运行循环并存储,希望你明白了。