如何在Laravel控制器中读取动态输入

时间:2020-06-18 11:29:29

标签: php laravel

我有一个创建动态输入的表格。我需要能够由控制器来接他们,但由于它不是动态的,所以它只接受第一个输入,从第一个输入来看它们都是动态的,所以它不起作用

表单HTML

    <form  method="get" action="{{route('albaran_entrada_create')}}">
     <input class="form-control widthInput2 precio"  id="precio-{{$num}}" name="precio-{{$num}}" type="number" value="0">
     <input type="submit" class="btn btn-primary" value="Crear Albaran entrada">
    </form>

控制器:

public function albaran_entrada_create(Request $request){

    $precio1=$request->precio-1;  // no dynamic
    $precio2=$request->precio-2;  //  yes dynamic


    Log::info($precio1); //good
    Log::info($precio2); //bad

}

PD:如果我通过ajax传递表单,它将起作用吗?

3 个答案:

答案 0 :(得分:-1)

尝试循环抛出请求输入并获取输入的键和值

foreach ($request->except('_token') as $key => $value) {
    Log::info($key);
    Log::info($value);
}

答案 1 :(得分:-1)

在您的控制器中,您可以遍历表单中表单元素的数量(如果可以计数),将值分配给变量变量。

for($i=0; $i<$elements_count; $i++) {
  ${'precio'.$i} = $request->input('precio'.$i);

}

答案 2 :(得分:-1)

为什么不使用数组发送这些输入,也可以更容易地知道其中的数字。

<form  method="get" action="{{route('albaran_entrada_create')}}">
     <input class="form-control widthInput2 precio"  id="precio-{{$num}}" name="precio[{{$num}}]" type="number" value="0">
     <input type="submit" class="btn btn-primary" value="Crear Albaran entrada">
</form>

然后在控制器中,您只需要恢复一个输入,即数组

public function albaran_entrada_create(Request $request){

    $precio = $request->input('precio', []);
    // example of result [1 => "precio 1 value", 4 => "precio 4 value"]
}