Ich habe zwei Modelle. Ein "Fahrzeug" und ein "Mieter".Aufruf zu undefinierter Methode Illuminate Database Query Builder :: vehicles()
Sie haben folgende Beziehungen miteinander.
Ein Mieter hat viele Fahrzeuge. Ein Fahrzeug gehört einem einzigen Mieter.
Für Tenant.php:
public function vehicles()
{
return $this->hasMany('\App\Models\Vehicle');
}
Für Vehicle.php:
public function tenant()
{
return $this->belongsTo('\App\Models\Tenant');
}
Ausführung dieses:
$this->user = $request->user();
$userTenant = $this->user->tenant();
$vehicle= $userTenant->vehicles()->first();
Ergebnisse i n ein Fehler
Call to undefined method Illuminate\Database\Query\Builder::vehicles()
Zeigen auf dieser Linie:
$vehicle= $userTenant->vehicles()->first();
Ich bin nicht so sicher, warum dies geschieht = \
Was meinst du mit „Gehört“ oder andere „Relation“ Instanz zurückzukehren? –
Wenn Sie eine Beziehung als Methode aufrufen, z. '...-> relation()' Sie erhalten die entsprechende Beziehungsklasse. Wenn es als ein Getter verwendet wird, z.B. '...-> relation' ist im Wesentlichen das Gleiche wie das Aufrufen von' ...-> relation() -> get() 'für Relationen, die auf mehrere Modelle abzielen oder' ...-> relation() -> first() 'für Beziehungen, die auf ein einzelnes Modell abzielen. –
Danke für die Erklärung, welchen Teil von Dokumenten sollte ich für "dieses" bestimmte Thema revidieren? Eloquente Beziehungen? –