我在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();
这是正常行为吗?在再次调用关系之前,我是否必须以某种方式重置某些内容?
答案 0 :(得分:1)
我不知道你重复同样行动的目的。如果$ first,$ second,$ third变量在同一个函数中,请不要再重复。
改为使用,
$ first = $ items-> subItems; $ second = $ first;