我要构建的东西:我正在尝试构建一个应用程序,该应用程序可以让用户预测即将到来的足球比赛的得分,对于每种比赛,都有2个输入字段,其中一个用于{{ 1}}和一个homeTeam
。
目标:在用户预测分数之后,我想检索所有数字输入字段以及awayTeam
和homeTeam
的名称。我需要某种方式来知道那两个数字输入字段代表正确的匹配。 (我有一个比赛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” =>是最后一个输入字段上的数字
答案 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"
)