2016-12-27 1 views
0

Ich benutze Laravel 5.3, ich habe Listing-Tabelle mit hasOne Beziehung zu Städten Tabelle.hasOne() keine Beziehungen wegen Methodenname

public function city() 
{ 
    return $this->hasOne('App\City', 'id', 'city_id'); 
} 

auf meiner Ansicht

{{$listing->city->name}} 

diese Ursache Fehler

Der Versuch, Eigentum von Nicht-Objekt zu erhalten

Aber wenn ich den Namen der Methode auf andere ändern, als Stadt,

public function foo() 
{ 
    return $this->hasOne('App\City', 'id', 'city_id'); 
} 

auf meiner Ansicht

{{$listing->foo->name}} 

Dieses funktioniert.

Was verursacht das Problem mit Stadt Methodenname? Ich habe nie Probleme mit Stadt Methodennamen in anderen Projekten.

Antwort

2

Es sieht so aus, als ob Sie city als Attribut des Objekts irgendwo anders in Ihrem Code verwenden - es enthält bereits den Wert, so dass dieser Wert anstelle der Relation verwendet wird.

Blick für einige Orte, wo man den Wert von $ listing- set> Stadt, versuchen dd tun ($ listing-> Stadt) für einen Hinweis. Und wenn du es nicht finden kannst, poste etwas mehr deines Codes, da der Fehler woanders liegt als das, was du bisher gepostet hast.