为foreach提供的无效参数()Laravel 5.3
问题描述:
我有2个表(采访和interviewtrack)在1形式。为foreach提供的无效参数()Laravel 5.3
这里是我的savehandler到目前为止的代码:
public function saveHandler(Request $request, $obj)
{
try {
DB::beginTransaction();
$obj->fill($request->all());
if (!$obj->save()) {
throw new ValidationException($obj->errors());
}
foreach($request->interviewTracks as $interviewTrack) {
\Log::info($interviewTrack);
if (empty($interviewTrack['id'])) {
$interviewTrack = new InterviewTrack();
}
else {
$interviewTrack = InterviewTrack::find($interviewTrack['id']);
}
$interviewTrack->interview()->associate($obj);
$interviewTrack['interview_id'] = isset($interviewTrack['interview_id']);
$interviewTrack->status = $interviewTrack['status'];
$interviewTrack->track_date = isset($interviewTrack['track_date']) ? $interviewTrack['start_time'] : 'YYYY-MM-DD';
$interviewTrack->outcome = $interviewTrack['outcome'];
$interviewTrack->remarks = $interviewTrack['remarks'];
$interviewTrack->save();
};
if (!$interviewTrack->save()) {
throw new ValidationException($interviewTrack->errors());
}
DB::commit();
return $this->sendSuccessResponse($request);
} catch (ValidationException $e) {
DB::rollback();
\Log::error($e->errors);
return $this->sendErrorResponse($request, $e->errors);
} catch (Exception $e) {
DB::rollback();
\Log::error($e->getMessage());
return $this->sendErrorResponse($request,'Unable to process. Please contact system Administrator');
}
}
这是我的看法表单代码:
<?php $index = 0; ?>
<?php echo Form::hidden('interviewTracks['.$index.'][id]', null); ?>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label class="control-label">Track Date</label>
<?php echo Form::text('interviewTracks['.$index.'][track_date]', null, ['id' => 'track_date','class' => 'form-control']); ?>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label class="control-label">Status</label>
<?php echo Form::select('interviewTracks['.$index.'][status]', $interviewTrackList, null, ['id' => 'status','class' => 'form-control']); ?>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label class="control-label">Outcome</label>
<?php echo Form::select('interviewTracks['.$index.'][outcome]', $outcomeList, null, ['id' => 'outcome','class' => 'form-control']); ?>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label class="control-label">Remark</label>
<?php echo Form::text('interviewTracks['.$index.'][remark]', null, ['id' => 'remarks','class' => 'form-control']); ?>
</div>
</div>
</div>
<?php $index++; ?>
它抛出提供的foreach错误无效的参数()时,我尽量节省。 任何想法?
答
变化:
foreach($request->interviewTracks as $interviewTrack)
到:
foreach($request->input('interviewTracks') as $interviewTrack)
DD($请求 - >所有())...和检查结果。 – Sherif
无法获得intertrack字段值。 –