尝试将新属性添加到现有集合并访问它。
我需要的是这样的:
$text = Text::find(1); //Text model has properties- id,title,body,timestamps
$text->user = $user;
并通过以下方式访问用户:$text->user
.
探索文档和SO,我发现put
, prepend
, setAttribute
方法来做到这一点。
$collection = collect();
$collection->put('a',1);
$collection->put('c',2);
echo $collection->c; //Error: Undefined property: Illuminate\Support\Collection::$c
Again,
$collection = collect();
$collection->prepend(1,'t');
echo $collection->t = 5; //Error: Undefined property: Illuminate\Support\Collection::$t
And
$collection = collect();
$collection->setAttribute('c',99); // Error: undefined method setAttribute
echo $collection->c;
有什么帮助吗?
我认为你在这里将 Eloquent 集合与 Support 集合混合在一起。使用时还要注意:
$text = Text::find(1); //Text model has properties- id,title,body,timestamps
$text->user = $user;
你这里没有任何集合,只有单个对象。
但让我们看看:
$collection = collect();
$collection->put('a',1);
echo $collection->c; //Error: Undefined property: Illuminate\Support\Collection::$c
你正在服用c
而你没有这样的元素。你应该做的是采取元素a
像这样的关键:
echo $collection->get('a');
或者使用像这样的数组访问:
echo $collection['a'];
另请注意,没有setAttribute
集合上的方法。有setAttribute
Eloquent 模型上的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)