2016-10-14 3 views
0

Bitte dieses Bild überprüfen werden Sie Idee bekommen, was ich brauche LINK i viele Flug zu einem Transport einfügen wollen, aber ich will wählen Personen für Transporte und Flüge alles funktioniert perfekt aber für die flugdetails wenn ich zwei personen im ersten flug zwei personen im zweiten flug in meiner pivot-tabelle auswähle, wählen sie den aufsteigenden 4 personennamen in beiden flight deatils aus. check this linkUpdate Pivot-Tabelle mit dynamischer Formulareingabe mit foreach Schleife

i einfügen möchten Personen separte wie erste Flug deatils zwei Personen und zweiten Flugdaten nennen zwei Personen so ist dies mein Controller

$data = array(); 
     $origin = $request->get('origin'); 
     $destination = $request->get('destination'); 
     $flight_no = $request->flight_no; 
     $dep_date = $request->dep_date; 
     $arrival_date = $request->arrival_date; 
     foreach ($origin as $key => $value){ 
      $data[] = [ 
       'transport_id' => $new->id, 
       'origin' => $value, 
       'destination' =>$destination[$key], 
       'flight_no' =>$flight_no[$key], 
       'dep_date' =>Carbon::parse($dep_date[$key])->format('Y-m-d h:i'), 
       'arrival_date'=> Carbon::parse($arrival_date[$key])->format('Y-m-d h:i'), 
       'user_id'=> Auth::id() 
      ]; 
     } 

     foreach($data as $d){ 
      $flight = Flight::create($d); 
      $flight->crews()->attach($request->input('flight_crew_list')); 
     } 

Wie kann ich? wenn nicht klar, was Sie brauchen, um mir zu helfen? EDIT: Meine Form wie diese im Hinzufügen von dynamischer Flugform mit VueJs

<tr v-for="row in rows"> 

<td> 

    <ul> 
     @foreach($crew_id as $key => $name) 
      <li> {!! Form::checkbox('flight_crew_list[]', $key) !!} 
      <b> {!! strtoupper($name) !!} </b>: ({{ $crew_type[$key] }})</li> 
     @endforeach 
    </ul> 
</td> 

<td> 
    <div class="row col-md-offset-1"> 
     <div class="col-md-4"> 
      {!! Form::label('origin', 'Origin',['class'=>'control-label']) !!} 
     </div> 
     <div class="col-md-8"> 
      {!! Form::text('origin[]',null,['class' => 'input-field input-sm text-upper',]) !!} 
     </div> 
    </div> 
    <div class="row col-md-offset-1"> 
     <div class="col-md-4"> 
      {!! Form::label('destination', 'Destination',['class'=>'control-label']) !!} 

     </div> 
     <div class="col-md-8"> 
      {!! Form::text('destination[]',null,['class' => 'input-field input-sm text-upper']) !!} 
     </div> 
    </div> 
    <div class="row col-md-offset-1"> 
     <div class="col-md-4"> 
      {!! Form::label('flight_no', 'Flight No',['class'=>'control-label']) !!} 
     </div> 
     <div class="col-md-8"> 
      {!! Form::text('flight_no[]',null,['class' => 'input-field input-sm text-upper']) !!} 
     </div> 
    </div> 
    <div class="row col-md-offset-1"> 
     <div class="col-md-4"> 
      {!! Form::label('datetime3', 'Departure',['class'=>'control-label']) !!} 
     </div> 
     <div class="col-md-8"> 
      {!! Form::text('dep_date[]',null,['class' => 'input-field input-sm','id'=>'datetime3']) !!} 
     </div> 
    </div> 
    <div class="row col-md-offset-1"> 
     <div class="col-md-4"> 
      {!! Form::label('datetime4', 'Arrival Date',['class'=>'control-label']) !!} 
     </div> 
     <div class="col-md-8"> 
      {!! Form::text('arrival_date[]',null,['class' => 'input-field input-sm','id'=>'datetime4']) !!} 
     </div> 
    </div> 
</td> 
<td> 
    <a @click="removeRow(row)"> 
    <button class="btn btn-xs " type="button" id="dim"> 
     <span class="glyphicon glyphicon-minus"></span> 
    </button> 
    </a> 
</td> 
</tr> 

Antwort

0

Es ist nicht ganz klar, wie Sie Ihr Eingabeformular gemacht wird und was kommt genau im Eingang (‚flight_crew_list‘).

Meine Vermutung ist, dass die Eingabe ('flight_crew_list') alle Crew-Mitglieder-IDs enthält, die im gesamten Formular ausgewählt wurden. Das erklärt, warum Sie alle 4 Crewmitglieder für einen einzigen Flug zugewiesen haben.

Wenn Sie weitere Details wünschen, geben Sie bitte den Quellcode des Formulars ein, das Sie im ersten Bild angefügt haben.

upd:

Als ich das Problem vermutet legt hier:

{!! Form::checkbox('flight_crew_list[]', $key) !!} 

Sie generieren einzigartige Array flight_crew_list, die alle Elemente in Form geprüft enthält. was Sie jedoch brauchen, ist für jeden Flug eine Reihe von aufgegebenem Besatzungsmitglieder halten:

{!! Form::checkbox('flight_crew_list[' . $row_id ']', $key) !!} 

So, nachdem in Back-End können Sie nur Werte anhängen, die für diesen speziellen Flug eingecheckt wurde.

foreach($data as $index => $d){ 
    $flight = Flight::create($d); 
    $flight->crews()->attach($request->input('flight_crew_list[' . $index . ']')); 
} 
+0

meine Frage Chek – Developer

+0

hey thnks aber im Hinzufügen von Zeilen mit ** vue-js ** im Problem konfrontiert, dass passieren ** $ row_id ** – Developer

+0

ich weiß, wie $ bekommt row_id wie diese '@ {{ $ index}} 'Ich kann die ID bekommen, aber wie geht es? irgendeine Idee ? – Developer

Verwandte Themen