2017-01-26 5 views
1

Controller-Methode:Laravel 5.3 wählen zupfen Methode

public function edit($id){ 

    $match2 = Match::pluck('team_a_id', 'id'); 
    return view('admin.accept.edit', compact('match2')); 

} 

Und Ansicht Datei:

{{ Form::select('matches_id', $match2, null, ['class' => 'form-control']) }} 

Und meine Tabelle:

Tabelle von Modell Match (Tabellenname: Ursachen):

enter image description here

Tabelle aus Modell Team (Tabellenname: Teams):

enter image description here

Tabelle teams angeschlossen ist (Referenzen) mit Tisch matches (team_a_id und team_b_id ist mit Tisch teams angeschlossen). Die select Methode mit view zurück mir nur ID mit Tabellen:

enter image description here

I team_name mit Tisch teams nicht id haben muß. Wenn ich ändern Methode zupfen:

$match2 = Match::pluck('id', 'id'); 

und Aussicht:

{{ Form::select('matches_id', Team::find($match2)->team_a_id." vs. ".Team::find($match2)->team_b_id, null, ['class' => 'form-control']) }} 

Laravel einen Fehler zurückgegeben:

Invalid argument supplied for foreach() (View: C:\xampp\htdocs\football\football\resources\views\admin\accept\edit.blade.php)

Dies ist metohd bearbeiten, so muss ich Datensatz markiert haben, die zuvor ausgewählt wurde .

+0

versuchen, den Inhalt von '$ match2' Ausgeben um zu sehen, was genau du bekommst. mit 'dd ($ match2);'. – Jerodev

+0

@Jerodev Dies hat 'dd()' https://images81.fotosik.pl/317/0dbc76714c0d776fgen.png – michal

Antwort

0

Ok ich das reparieren. Ich schreibe Methode:

public function edit($id){ 

    $match = Match::select()->orderBy('updated_at', 'asc')->get(); 
    $selectedMatch = DB::table('usermatches')->find($id)->matches_id; 

    return view('admin.accept.edit', compact('match', 'selectedMatch')); 

} 

und Aussicht:

<select name="matches_id" id="matches_id" class="form-control selectpicker" data-live-search="true" data-size="5"> 
    <option value=0>Wybierz wydarzenie</option> 
     @foreach($match as $role) 
      <option value="{{ $role->id }}" {{ $selectedMatch == $role->id ? 'selected="selected"' : '' }}> 
      {{ Team::find($role->team_a_id)->team_name }} vs. {{ Team::find($role->team_b_id)->team_name }} ({{$role->date}}; <?php echo date('G:i',strtotime($role->time)); ?> | Liga {{ League::find($role->league_id)->name }} | {{ Sport::find($role->sport_id)->name }}) 
      </option> 
     @endforeach 
    </select> 

In Modellansicht ich vergleichen id mit zwei Tischen und es funktioniert;)

{{ $selectedMatch == $role->id ? 'selected="selected"' : '' }} 
0

Versuchen Sie, diese match2 $ = Spiel :: zupfen ('team_a_id', 'id') -> toArray()

+0

zurückgegeben. Nein, ich muss String nicht Array haben – michal