Ich habe ein Modell "model1", die zu einem anderen Modell 'model2' gehören und sie sind eins zu viele Beziehung. Lassen Sie uns sagen model2 hat zwei Funktion,Laravel Eloquent Eine zu viele Relation Funktion nicht gefunden
function model1()
{
return $this->hasMany('App\model1');
}
function model3()
{
return $this->belongsTo('App\model3');
}
Modell1 eine Funktion hat,
function model2()
{
$this->belongsTo('App\model2');
}
Wenn ich rufe Abfrage in der Steuerung wie folgt,
function index()
{
$query=model1::with('model2')->get();
}
Es funktioniert aber,
function index()
{
$query=model1::with('model2.model3')->get();
}
Zeigt folgenden Fehler,
Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: model3()
Wie ich bin neu in Laravel und ich nicht, warum ich nicht so genannt werden. Kann mir jemand das erklären?
UPDATE ::
Szenario ist:
Modell 1 = Raum
Modell 2 = Hotel
Modell 3 = Stadt
Zimmer gehört das Hotel,
Das Hotel verfügt über viele Zimmer,
Hotel Stadt gehört,
Stadt viele Hotels,
Wenn ich Abfrage für Zimmer, ich möchte, Hotel und Stadt aufzunehmen.
Ich habe ein Modell "Room", die zu anderen Modell "Hotel" gehören und sie sind eins zu viele Beziehung. Lassen Sie uns sagen, "Hotel" hat zwei Funktion,
function Room()
{
return $this->hasMany('App\Room');
}
function City()
{
return $this->belongsTo('App\City');
}
"Room" hat eine Funktion,
function Hotel()
{
$this->belongsTo('App\Hotel');
}
Wenn ich rufe Abfrage in der Steuerung wie folgt,
function index()
{
$query=Room::with('Hotel')->get();
}
Es funktioniert aber,
function index()
{
$query=Room::with('Hotel.City')->get();
}
Zeigt folgenden Fehler,
Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: Stadt()
Wie ich bin neu in Laravel und ich nicht, warum ich nicht so genannt werden. Kann mir jemand das erklären?
Sie verpassen '-> get()' am Ende Ihrer Aussage. – aynber
Sorry, ich habe gerade hinzugefügt. – user3789191
Ich habe einige weitere Details zu der Frage hinzugefügt können Sie mir bitte erklären, wie kann ich lösen? – user3789191