多次调用雄辩关系并不会返回数据

时间:2016-07-01 00:33:22

标签: laravel-5 eloquent laravel-5.1

我在Laravel 5.1中有这种奇怪的行为,当我在同一代码执行中不止一次地调用一个雄辩模型的关系时,那么第二次它没有数据。

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();

这是正常行为吗?在再次调用关系之前,我是否必须以某种方式重置某些内容?

1 个答案:

答案 0 :(得分:1)

我不知道你重复同样行动的目的。如果$ first,$ second,$ third变量在同一个函数中,请不要再重复。

改为使用,

$ first = $ items-> subItems;  $ second = $ first;