【问题标题】:Cannot get id of subscription in request无法在请求中获取订阅 ID
【发布时间】:2021-02-25 03:57:12
【问题描述】:

我正在尝试获取所选订阅的 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>

非常感谢您的帮助!

【问题讨论】:

  • 您正在创建多个表单,所有表单都带有一个隐藏的输入,其名称相同,引用相同的表单?
  • 对于多个名称属性,使其动态name="subscription[]" 现在从控制器检查dd($request-&gt;subscription);
  • @lagbox 在这个表格之外还有另一种表格,这就是我使用“表格”属性的原因,是的,里面还有隐藏的输入
  • 它不是一种形式,它有很多是因为循环......所有这些隐藏的输入都引用了相同的形式名称

标签: laravel laravel-blade laravel-routing


【解决方案1】:

我只需要将表单 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    相关资源
    最近更新 更多