Ich entwickle eine Web-API mit Laravel 5.0, aber ich habe Zweifel über eine Abfrage. Meine Klassen sind diese:Laravel wo auf Beziehung Objekt
class Event extends Model {
//
protected $table = 'events';
public $timestamps = false;
public function partecipants()
{
return $this->hasMany('App\Partecipant', 'IDEvent', 'ID');
}
public function owner()
{
return $this->hasOne('App\User', 'ID', 'IDOwner');
}
}
und
class Partecipant extends Model {
//
protected $table = 'partecipants';
public $timestamps = false;
public function user()
{
return $this->belongTo('App\User', 'IDUser', 'ID');
}
public function event()
{
return $this->belongTo('App\Event', 'IDEvent', 'ID');
}
}
Nun möchte ich mit einem bestimmten partecipant alle Ereignisse erhalten. Ich habe versucht, mit:
Event::with('partecipants')->where('IDUser', 1)->get();
aber die Bedingung, wo auf Event-Klasse angewendet wird, und nicht auf partecipants. Dies gibt mir stattdessen eine Ausnahme:
Partecipant::where('IDUser', 1)->event()->get();
Ich weiß, dass ich das schreiben kann:
$list = Partecipant::where('IDUser', 1)->get();
for($item in $list) {
$event = $item->event;
...other code....
}
sind aber nicht zu viele Anfragen an den Server?
Wo ist dann der beste Weg, um diese Abfrage mit Laravel und Eloquent durchzuführen?
Was war die Ausnahme? – infomaniac