You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何获取循环生成的带索引表单name对应的值?

在Laravel后端获取循环生成的表单值

一、针对现有命名格式的获取方法

你当前表单生成的是breakfast0、lunch1这类带索引后缀的name属性,后端可以通过两种方式获取对应值:

  1. 已知用户数量时循环遍历
    如果后端能拿到生成表单时的$users集合(比如数据库查询结果),可以直接根据用户数量循环,逐个取出对应值:
$users = User::all(); // 假设这是传给前端的用户集合
foreach ($users as $index => $user) {
    $breakfast = request()->input("breakfast{$index}");
    $lunch = request()->input("lunch{$index}");
    $dinner = request()->input("dinner{$index}");
    
    // 这里可处理每个用户的餐食数据,比如存入数据库
}
  1. 未知用户数量时筛选请求参数
    如果后端没有保留$users集合,也可以直接遍历请求中所有以breakfast、lunch、dinner开头的参数:
// 获取所有早餐数据
$breakfasts = collect(request()->all())->filter(function ($value, $key) {
    return str_starts_with($key, 'breakfast');
})->values()->toArray();

// 同理获取午餐和晚餐数据
$lunches = collect(request()->all())->filter(function ($value, $key) {
    return str_starts_with($key, 'lunch');
})->values()->toArray();

$dinners = collect(request()->all())->filter(function ($value, $key) {
    return str_starts_with($key, 'dinner');
})->values()->toArray();

// 按索引对应处理,比如$breakfasts[0]对应第一个用户的早餐值

二、更推荐的优化方案:改用数组格式的name属性

上面的方式虽能解决问题,但如果前端DOM顺序变动,索引对应关系容易出错。更稳妥的做法是修改Blade模板的name属性为关联数组格式,直接绑定用户ID:

修改Blade模板代码:

@foreach ($users as $user)
      <tr>
         <td><input type="text" name="user_names[{{$user->id}}]" value="{{$user->name}}" class="form-control" disabled ></td>
          <td><input type="number" name="meals[{{$user->id}}][breakfast]" class="form-control" value="0"></td>
          <td><input type="number" name="meals[{{$user->id}}][lunch]" class="form-control" value="0"></td>
          <td><input type="number" name="meals[{{$user->id}}][dinner]" class="form-control" value="0"></td>
       </tr>
@endforeach

后端获取时直接拿到结构化数组,按用户ID处理更直观:

$meals = request()->input('meals');

foreach ($meals as $userId => $meal) {
    $breakfast = $meal['breakfast'];
    $lunch = $meal['lunch'];
    $dinner = $meal['dinner'];
    
    // 通过$userId直接关联对应用户,逻辑更清晰
}

这种方式避免了索引错位问题,代码可读性和维护性也更高。

内容的提问来源于stack exchange,提问作者MD Meadul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:44:57