![](/img/trans.png)
[英]How to manually create a new empty Eloquent Collection in Laravel 4
[英]Creating a new empty property to an Eloquent collection
我有一個循環瀏覽的集合,並嘗試添加具有空值的新屬性suffix
。
$results = Models\EloTable
::hydrate((array) $query)
->load(
'extraction',
'reference'
);
foreach ($results as $result) {
foreach ($result->data->authors as $author) {
$author->suffix = '';
}
}
目前,每個$author
都有兩個屬性,
{
lastName: "Lastname",
firstName: "Firstname"
}
如果我dd($author);
第一次迭代后,我會得到
{
lastName: "Lastname",
firstName: "Firstname",
suffix: ""
}
但是如果我dd($results);
在兩個foreach
循環之后,它將不會持續添加空suffix
屬性。
如何更改集合以保留suffix
屬性?
您可以將屬性附加到模型中,如下所示:
模型:
protected $appends = ['suffix'];
public function getSuffixAttribute()
{
return null;
}
文檔:
https://laravel.com/docs/5.8/eloquent-mutators
https://laravel.com/docs/5.8/eloquent-serialization#appending-values-to-json
如果您不使用原始的$results
加載data
和data.authors
在隨后的行中調用$results->data->authors
data.authors
$results->data->authors
或類似的內容將重新查詢數據庫,並提取一個尚未復制的authors
的新副本。被修改。
只需將$results
更改為:
$results = Models\EloTable
::hydrate((array) $query)
->load(
'extraction',
'reference',
'data',
'data.authors',
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.