2016-07-21 20 views
0

Ich habe 3 Modelle:HasManyThrough mit einer anderen Beziehung in Laravel 5.2

Turnier, Kategorie, Team

A Turnier hasMany Kategorie

A Kategorie hasMany Teams

Tables:

Tournament: Only attributes 
Category: id, tournament_id, name 
Teams: id, category_id, name 

Ich möchte alle Teams von einem Turnier bekommen von: Turnier-> Teams $

Ich habe versucht:

public function teams() 
{ 
    return $this->hasManyThrough(Team::class,CategoryTournament::class); 
} 

Dann brauche ich eine zusätzliche Beziehung meines Teams: team-> Kategorie-> name;

aber das Ergebnis dieser HasManyThrough keine Beziehung hat ....

Jede Idee ???

Antwort

0

In Category Modell:

public function team() 
{ 
    return $this->hasMany('App\Teams'); 
} 

In Teams Modell:

public function category() 
{ 
    return $this->belongsTo('App\Category', 'category_id'); 
} 
0

Ich denke, sollte so sein, versuchen.

Nach Laravel Dokumentation:

countries 
    id - integer 
    name - string 

users 
    id - integer 
    country_id - integer 
    name - string 

posts 
    id - integer 
    user_id - integer 
    title - string 

Damit können Sie Beziehung hinzufügen:

public function posts() 
    { 
     return $this->hasManyThrough('App\Post', 'App\User', 'country_id', 'user_id'); 
    }