首页 > 解决方案 > 无法在请求中获取订阅 ID

问题描述

我正在尝试获取所选订阅的 id 并将其传递给控制器​​,但由于某种原因,当我 dd() 或 print_r() 控制器中的 id 时,无论我单击哪个订阅,它都会返回相同的 id。

无论我单击第一个“+”按钮还是第二个按钮,当我 print_r() 时它总是返回相同的 id。

在此处输入图像描述

Array ( [_token] => iFimNDCv0q4rq7OmmUWGN8SGr2Bq0brsiRMLIzBD [subscription] => 2 )

即使当我点击第一个,它应该有 '1' 作为 id,它仍然返回 '2'。

这是我在 web.php 中的路线

Route::post('/transaction/store', 'TransactionController@store')->name('transaction.store');

这是控制器中的功能

public function store(Request $request)
{
    // continue here
    print_r($request->input());
}

这是负责发送 id 的表单标签(位于刀片中的 foreach 语句中)

<form id="batch" action="{{route('transaction.store')}}" method="POST">
     @csrf
     <input type="hidden" name="subscription" value="{{$subscription->id}}" form="batch">
     <button type="submit" class="btn btn-sm btn-outline-dark" form="batch">+</button>
</form>

非常感谢您的帮助!

标签: laravellaravel-bladelaravel-routing

解决方案


我只需要使表单 id 动态化!

<form id="batch-{{$subscription->id}}" action="{{route('transaction.store')}}" method="POST">
     @csrf
     <input type="hidden" name="subscription" value="{{$subscription->id}}" form="batch-{{$subscription->id}}">
     <button type="submit" class="btn btn-sm btn-outline-dark" form="batch-{{$subscription->id}}">+</button>
 </form>

推荐阅读