在POST请求中获取多个输入字段

时间:2018-10-26 14:20:55

标签: php laravel

我要构建的东西:我正在尝试构建一个应用程序,该应用程序可以让用户预测即将到来的足球比赛的得分,对于每种比赛,都有2个输入字段,其中一个用于{{ 1}}和一个homeTeam

目标:在用户预测分数之后,我想检索所有数字输入字段以及awayTeamhomeTeam的名称。我需要某种方式来知道那两个数字输入字段代表正确的匹配。 (我有一个比赛ID)

在以下代码中,我仅接收最后一个输入字段,laravel是否提供任何方法来获取每个输入字段? +如何在请求中添加团队名称? (它们不是输入字段)

代码:

awayTeam

控制器:

<ul class="match-table">
    {!! Form::open(['method'=>'POST', 'action'=>'PredictionController@store']) !!}
            @foreach($matches as $match)
                <div class="specific-match-table container mb-5">
                   <div class="row">
                        <div class="team d-flex align-items-center col-sm-5">
                            <p>{{$match->homeTeam}}</p>
                        </div>
                        <div class="row col-sm red">
                            {{Form::number('homeTeam', '', ['placeholder' => '0', 'class' =>'form-control col-sm'])}}
                            <span class="vs">vs</span>
                            {{Form::number('awayTeam', '', ['placeholder' => '0', 'class' =>'form-control col-sm'])}}
                        </div>
                        <div class="team d-flex align-items-center justify-content-end col-sm-5">
                            <p>{{$match->awayTeam}}</p>
                        </div>
                    </div>
                </div>
            @endforeach
     {{Form::button('Submit', ['type' =>'submit', 'class' => 'submit-btn'])}}              
     {!! Form::close() !!}
</ul>

DD结果:

class PredictionController extends Controller
{
  public function store(Request $request) {

      $requestData = $request->all();

      dd($requestData);
  }
}

“ 5” =>是最后一个输入字段上的数字

2 个答案:

答案 0 :(得分:1)

您要使用数组。

Form::number('homeTeam',更改为Form::number('match[' . $match->id . '][homeTeam]',,将Form::number('awayTeam',更改为Form::number('match[' . $match->id . '][awayTeam]',

然后您将得到一个$match[N][awayTeam] = X的结果。在控制器中运行dd($request->get('match')),以查看阵列。

如果您还希望每个团队的名称,请在循环中使用hidden input field

<input type='hidden' name='match[{{ $match->id }}][awayTeamName]' value='{{ $match->awayTeam }}' />
<input type='hidden' name='match[{{ $match->id }}][homeTeamName]' value='{{ $match->homeTeam }}' />

答案 1 :(得分:0)

在字段名称中添加“ []”,这将构成一个值数组。类似于“ homeTeam []”,而不是“ homeTeam”。 因此,您将得到例如:

'homeTeam' => array(
"1",
"3",
"5"
)