2016-06-11 25 views
0

Ich habe drei Tabellen units, renters, renter_units. Felder von render_units Tabelle ist id, unit_id, renter_id.Beziehungen in hat viele Laravel

Mein Render Modell ist

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

Und in meinem RentersController

$renters = Renter::with('renter_unit')->get(); 

So ist die $renders Array

Collection {#212 ▼ 
    #items: array:1 [▼ 
    0 => Renter {#206 ▼ 
     #fillable: array:3 [▶] 
     #table: "renters" 
     #guarded: array:1 [▶] 
     #connection: null 
     #primaryKey: "id" 
     #perPage: 15 
     +incrementing: true 
     +timestamps: true 
     #attributes: array:7 [▶] 
     #original: array:7 [▶] 
     #relations: array:1 [▼ 
     "renter_unit" => Collection {#210 ▼ 
      #items: array:2 [▼ 
      0 => RenterUnit {#213 ▼ 
       #fillable: array:2 [▶] 
       #table: "renter_units" 
       #guarded: array:1 [▶] 
       #connection: null 
       #primaryKey: "id" 
       #perPage: 15 
       +incrementing: true 
       +timestamps: true 
       #attributes: array:5 [▼ 
       "id" => 1 
       "unit_id" => 1 
       "renter_id" => 1 
       "created_at" => "2016-06-11 02:40:44" 
       "updated_at" => "2016-06-11 02:40:44" 
       ] 
       #original: array:5 [▶] 
       #relations: [] 
       #hidden: [] 
       #visible: [] 
       #appends: [] 
       #dates: [] 
       #dateFormat: null 
       #casts: [] 
       #touches: [] 
       #observables: [] 
       #with: [] 
       #morphClass: null 
       +exists: true 
       +wasRecentlyCreated: false 
      } 
      1 => RenterUnit {#214 ▶} 
      ] 
     } 
     ] 
     #hidden: [] 
     #visible: [] 
     #appends: [] 
     #dates: [] 
     #dateFormat: null 
     #casts: [] 
     #touches: [] 
     #observables: [] 
     #with: [] 
     #morphClass: null 
     +exists: true 
     +wasRecentlyCreated: false 
    } 
    ] 
} 

zeigt aber ich möchte die relationship Array für renter_unit zu Feld. Wie erreiche ich das?

Antwort

0

Möglicherweise sollten Sie Many-To-Many Beziehung verwenden. Wenn ja, dann brauchen Sie keine Pivot-Klasse wie RenterUnit, nur renter_unit Tabelle
Dann wird Ihr Code wie unten

Renter.php
public function units() 
{ 
    return $this->belongsToMany('App\Unit'); 
} 
Unit.php
public function renters() 
{ 
    return $this->belongsToMany('App\Renter'); 
} 

In Ihrem RentersController Sie können auf Einheiten zugreifen, die mit jeder Instanz des Mieters in Zusammenhang stehen.

$renters = Renter::with('units')->get(); 
foreach($renters as $renter) { 
    $units = $renter->units; //here they are, it's a collection 
}