Hallo Ich arbeite an einer CRUD-Schnittstelle, um ein Event zu aktualisieren.Laravel - Form - Eager Loading
Ereignisklasse Modellein Ereignis gehört zu viele Veranstalter
class Event extends Model
{
public function organizers()
{
return $this->belongsToMany('App\Organizer')->withTimestamps();
}
}
Organizer Klasse Modell
class Organizer extends Model
{
public function event()
{
return $this->belongsToMany('App\Event')->withTimestamps();
}
}
Eine Ereignis-SteuerungIch sende das Ereignis zusammen mit seinem Veranstalter (s)
public function edit($id)
{
$event = Event::with(['organizers'])->findOrFail($id);
return view('event.edit', ['event' => $event]);
}
event.edit Ansicht
<? $organizers = DB::table('organizers')->lists('name', 'id'); ?>
{!! Form::model($event, [
'method' => 'PATCH',
'route' => ['eventUpdate', $event->id]
]) !!}
<div id="organizer_id-group" class="form-group">
{{Form::select('organizer[id]', $organizers, null,['class'=>'form-control'])}}
</div>
{!! Form::submit('Update', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
Für den Moment, als ich die ganze Liste der Organisatoren sehen, was gut ist, aber die Standardwert, oder der ausgewählte Wert entspricht nicht dem mit dem Ereignis verknüpften Wert.
versuchte ich
<div id="organizer_id-group" class="form-group">
@foreach($event->organizers as $key =>$organizer)
{{Form::select($organizer->id, $organizers, null,['class'=>'form-control'])}}
@endforeach
</div>
aber der ausgewählte Veranstalter ist immer der erste, auch wenn $ Organiser-> id = 2
Jede Hilfe wäre willkommen. Danke
Hallo Leon, ich habe die Benennung der Funktionen geändert, da ein Event zu vielen Veranstaltern gehört. Ich habe ein Bild der Tabelle event_organizer hinzugefügt, die ein Querverweis zwischen Ereignis-ID und Organizer-ID ist. Ich habe deine Syntax ausprobiert, aber der Orgnizer ist immer noch der erste. –
Ich habe auch die Struktur des Ereignisobjekts hinzugefügt, das ich aktualisieren möchte. Dieses $ -Ereignis ist das, das ich in der event.edit-Ansicht beim Debugging habe. –