为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错误无效的参数()时,我尽量节省。 任何想法?

+0

DD($请求 - >所有())...和检查结果。 – Sherif

+0

无法获得intertrack字段值。 –

变化:

foreach($request->interviewTracks as $interviewTrack)

到:

foreach($request->input('interviewTracks') as $interviewTrack)