2017-10-03 3 views
-2

Ich habe einen Benutzer, der mehrere Projekte haben kann.Laravel Eloquent, Set hat viele Relation obwohl 2 Tabellen

So würde Ich mag eine Beziehung im User Modell

public function projects() { 

    return //some code here 

} 

Das Problem definieren ist, dass der Benutzer des Projekts zu erreichen, muss ich allerdings zwei verschiedene Tabellen gehen. Also für diesen Fall ist es nicht möglich, hasManyThough oder nur hasMany zu verwenden.

Wie richte ich eine Eins-zu-Viele-Beziehung ein, die über zwei verschiedene Tabellen statt nur einer (dh einer Pivot-Tabelle) geht?

+1

können Sie das Datenbankschema setzen, um es klar? – Marprin

+0

Dokumentation: https://laravel.com/docs/5.5/eloquent-relationships –

+0

* eins zu viele Beziehung, die obwohl 2 verschiedene Tabellen geht * ist ein bisschen unklar, nein, es ist völlig unklar .. kann angeben .. wie es ist A (1) --- (n) B (1) --- (n) C oder .. etwas anderes? jemals gelesen ['HasManyThrough'] (https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Concerns/HasRelationships.html#method_hasManyThrough)? –

Antwort

0

verwenden nur eloquent in Ihrem Modell .. nur definieren hasMany/belongsto oder etc für Sie jedes Modell

Beispiel:

$user->table_b->table_c->project()... this just sample.. you can use 'with' 


class User extends Model 
{ 
    protected appends = ['template']; 

    public function table_b() { 
     return $this->hasMany(TableB::class); 
    } 
} 

class TableB extends Model 
{ 
    public function table_c() { 
     return $this->hasMany(TableC::class); 
    } 
} 

class TableC extends Model 
{ 
    public function project() { 
     return $this->hasMany(Project::class); 
    } 
} 

class Project extends Model 
{ 

} 
Verwandte Themen