Laravel 5 hasManyThrough

8

Ich habe 3 Tabellen: company & lt; - & gt; users & lt; - & gt; invoice .

Eine Firma hasMany users.

Ein Benutzer belongsTo ein Unternehmen und ein Benutzer hasMany Rechnungen.

Eine Rechnung belongsTo ein Benutzer.

Jetzt habe ich eine Rechnung mit Informationen über den Benutzer (Kunden), und ich möchte dem Benutzer seine Informationen über das Unternehmen geben, also habe ich ein:

gemacht

Eine Rechnung hasManyThrough Benutzer, Firma (erhält also die Firma über den Benutzer)

Jetzt funktioniert es nicht so wie es benötigt wird.

Modelle:

%Vor%

Rechnungsprüfer:

%Vor%

Die dd ($ rechnungen) geben ein BadMethodCallException Call to undefined method Illuminate\Database\Query\Builder::company()

Weitere benötigte Informationen können zur Verfügung gestellt werden!

    
Liam 29.05.2015, 12:07
quelle

2 Antworten

4

Nehmen wir an, wir haben Tabelle A und B und C wo Tabelle A viele von B (OneToMany) hat und B viele C (OneToMany) hat Um auf die Tabelle C von Tabelle A zuzugreifen, können Sie die Laravel-Verknüpfung (HasManyThrough) auf der Tabelle A verwenden, und das Problem ist gelöst

ABER Wenn Sie Tabelle A und B und C haben wo Tabelle A viele von B (OneToMany) hat und B viele C (ManyToMany) hat Sie können die Verknüpfung von Laravel (HasManyThrough) nicht verwenden, um auf die Tabelle C von Tabelle A zuzugreifen {aufgrund der Pivot-Tabelle in der Mitte zwischen B und C}, was Sie in diesem Fall tun können, ist sehr einfach:

In diesem Beispiel wird Tabelle A [Kurse], Tabelle B [Kapitel] und Tabelle C [Videos] sein. wo jeder Kurs Kapitel hat, während ein Kapitel nur zu einem Kurs gehören kann. Auf der anderen Seite hat jedes Kapitel viele Videos, während ein Video zu vielen Kapiteln gehören kann.

%Vor% %Vor% %Vor%     
Mahmoud Zalt 29.05.2015 12:38
quelle
1

Sie können dies auch in der Course-Klasse tun. Wenn Sie also - & gt; with ('chapters') verwenden, werden automatisch auch die Videos geladen:

%Vor%     
Peter 01.09.2015 16:49
quelle

Tags und Links