在正常情况下,我们会获得诸如$request->input('input_name')
之类的输入字段值,但在我的情况下,我的输入名称是动态的,可以是任何值(来自数据库)。
我想知道如何获取此类输入的数据?
我的表单输入如下:
//1
<input type="radio" value="{{$opt->title}}" name="{{$opt->group->title}}">
//2
<select name="{{$opt->group->title}}" class="form-control">
//3
<input class="options-checkbox" type="checkbox" value="{{$opt->title}}" name="{{$opt->group->title}}[]">
因此每个输入基于数据库都有不同的名称,而我无法在控制器中预测其名称以获取其值。
array:5 [▼
"_token" => "QBY0WqF2WdqALxks22zjqpuBwplviHStBzTqzFzD"
"COLORS" => "blue" //1
"tester_group3ffhshg" => "title 33" //2
"radio_group" => array:1 [▼
0 => "hi" //3
]
"quantity" => "1"
]
反正从这些输入中获取数据吗?
答案 0 :(得分:0)
我不会在代码中回答(意思是,我不会重新创建整个代码),但是我可以为您提供可用于解决此问题的最佳逻辑。
首先,由于您的输入字段是动态的,因此您必须在前端控制这些输入。至少是Javascript。如果没有,您将需要它。
一旦前端有Javascript,请在加载时以及每当用户执行可能会更改字段的操作时,更新包含这些字段名称的数组变量。例如,如果页面加载时具有名为field_1
和field_2
的字段,请将这些字段名称添加到一个名为request_fields
的数组中。
此后,每次字段更改时进行更新。进行一些更改之后,假设现在您的控制器中有三个字段,分别为field_23
,field_34
和field_54
,并且您将通过每个操作对其进行更新。
现在,在进行表单提交操作时,只需在表单的POST请求中追加您需要的字段数组即可,一切顺利!然后,您可以在后端扫描此数组,并根据需要获取请求数据!
关于控制器的一个简单示例可能看起来像这样:
foreach($request->requiredFields as $field){
echo $request->{$field};
}
这将很容易解决您的问题,因为它易于实施且也易于理解!如果您还有其他问题,请告诉我。