简体   繁体   English

Laravel将雄辩的实例更改为生成器实例

[英]Laravel changing eloquent instance to a builder instance

At least it seems to be doing that. 至少它似乎正在这样做。

First I retrieve multiple models: 首先,我检索多个模型:

$ConfirmedCards = JobCardHead::where('Status', '=', 'Confirmed')->get(); 

Then I use a for each loop to work on each model: 然后,我为每个循环使用a来处理每个模型:

foreach ($ConfirmedCards as $card) {
...
}

Now each $card is a collection right? 现在,每个$ card都是收藏集,对不对? Laravel says that an eloquent model is extends the collection class and if I do, Laravel说,一个雄辩的模型可以扩展集合类,如果我这样做,

foreach ($ConfirmedCards as $card) {
    echo $card
}

I get the data in what definitely looks like a collection. 我从绝对看起来像集合中获得数据。 But if I attempt to use the collection method put(), like this 但是,如果我尝试使用收集方法put(),像这样

foreach ($ConfirmedCards as $card) {
    $card -> put('StartDate', 'someDate');
}

I get an error saying that I am trying to call put() on a query\\Builder instance, How is $card a builder instance? 我收到一条错误消息,说我试图在query \\ Builder实例上调用put(),$ card如何成为一个生成器实例?

Please Help. 请帮忙。 Thank you 谢谢

Your $card variable is not a collection but an object extending Illuminate\\Database\\Eloquent\\Model class. 您的$ card变量不是集合,而是扩展了Illuminate \\ Database \\ Eloquent \\ Model类的对象。 When you try to echo this object, you're seeing it serialized to JSON . 当您尝试回显此对象时,您会看到它序列化为JSON

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM