【发布时间】:2021-08-08 22:19:54
【问题描述】:
我正在 dding 一个集合,因为我在寻找对象的属性时遇到问题:
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.
我认为这与 & 有关,但我不确定它为什么在那里或来自哪里
【问题讨论】:
-
First 只返回数组中的第一个值,所以不幸的是这没有帮助
-
所以我已经更新以提供一个更好的数组示例,如果我点击
$this->plan->first()我会得到字符串Under 18而没有别的 -
(清理了一些 cmets)。现在肯定更清楚了;你能提供生成这个集合的代码吗?下面的答案有效吗?
-
集合由前端作为请求的一部分提供,我所做的就是像这样收集它:
$this->plan = collect($plan); -
明白了!为混乱道歉。所以你基本上是在做
collect(['ageRange' => 'Under 18', 'goal' => null, 'duration' => 'Indefinitely']),这会导致该单个数组的集合。数组访问['duration']而不是对象访问->duration是要走的路。如果您想让$this->plan->duration工作,只需执行$this->plan = (object)$plan。仍然不确定&虽然????
标签: laravel laravel-collection