2016-07-01 12 views
1

Ich habe dieses seltsame Verhalten in Laravel 5.1, wo, wenn ich die Beziehung eines redegewandten Modells mehr als einmal innerhalb der gleichen Codeausführung aufrufen, dann das zweite Mal nicht habe die Daten.Mehrere eloquente Beziehung mehrfache gibt keine Daten

class Items extends Eloquent { 
    public $table = 'items' 

    public function subItems() { 
     return $this->hasMany(Item::class, 'items_id'); 
    } 
} 

class Item extends Eloquent { 
    public $table = 'items_item' 
    public $fillable = ['items_id']; 
} 


$items = Items::create(); 
Item::create([ 
    'items_id' => $items->id, 
]); 
Item::create([ 
    'items_id' => $items->id, 
]); 


// works 
$first = $items->subItems; 
// no data 
$second = $items->subItems; 
// works 
$third = $items->subItems()->get(); 

Ist das normales Verhalten? Muss ich irgendwie etwas zurücksetzen, bevor ich die Beziehung erneut aufruft?

Antwort

1

Ich kenne den Zweck Ihrer wiederholten gleichen Aktion nicht. Wenn Ihre $ ersten, $ zweiten, $ dritten Variablen die gleiche Funktion haben, wiederholen Sie sie nicht noch einmal.

Stattdessen verwenden,

$ first = $ Artikel-> SubItems; $ Sekunde = $ zuerst;