Laravel 与符号未定义的集合 属性

Laravel collection with ampersand undefined property

我正在 dd 收集一个像这样的集合,因为我在寻找对象上的 属性 时遇到问题:

dd($this->plan);

输出:

Illuminate\Support\Collection {#5314
  #items: array:3 [
    "ageRange" => "Under 18"
    "goal" => null
    "duration" => & "Indefinitely"
  ]
}

我正在寻找这个对象上的 属性 duration,但是当我点击:$plan->duration 我得到以下错误:

dd($this->plan->duration);

我收到以下错误:

Property [duration] does not exist on this collection instance.

我相信这与此有关 & 但我不确定它为什么在那里或从哪里来

那是一个数组,不是Collection里面的一个对象。试试 $this->plan->get('duration')$this->plan['duration']


正如 @Peppermintology 评论中的 question/answer 所指出的,这是因为 'duration' 键是通过引用设置的。为了说明这一点,这里有一种在 tinker 控制台中重现该行为的快速方法: