2016-05-28 4 views
0

Laravel Eloquent Selbst Join Eltern Kind Beziehung

class Product_category extends Model 
{ 
    // 
    protected $table='PRODUCT_CATEGORIES'; 
    public $timestamps = false; 


    public function getParentCategory() { 
     return $this->hasOne(self::class, 'id', 'parent_id'); 
    }. 


    public function getChildCategories(){ 
     return $this->hasMany(self::class, 'parent_id','id'); 
    } 

Ich bin in der Lage alle untergeordneten Datensätze der Tabelle abgerufen werden durch die Verwendung von getChildeCategories machen, aber nicht in der Lage Elternteil bestimmte Kategorie abrufen. Es gibt mir immer null.Laravel Eloquent Selbst Eltern Kind Registriert

Antwort

3

Es heißt Eins-zu-viele-Beziehung, die Inverse einer hasMany Beziehung ist belongsTo Methode, Ihre getParentCategory() sollte sein:

public function getParentCategory() { 
    return $this->belongsTo(self::class, 'parent_id'); 
} 

public function getChildCategories(){ 
    return $this->hasMany(self::class, 'parent_id'); 
} 
+0

Vielen Dank für Ihre wertvolle Antwort, aber es zeigt mir nicht angemessene Reaktion its me geben selbe Aufzeichnung, wie ich angegeben habe, nicht zeigen Eltern-ID-Datensatz – Terrasom

+0

Stellen Sie sicher, dass Sie auf eine Kinderkategorie überprüfen, überprüfen Sie auch Ihre Datenbank Datensätze ist 'parent_id' korrekt gefüllt? – Rifki

+0

Untergeordnete Kategorie funktioniert korrekt, aber die übergeordnete Kategorie ruft keine korrekte Antwort ab – Terrasom