[英]Updating multiple Eloquent models with different values
我有一個Parent
model 與Child
model 有一個hasMany
關系。 我想用特定和不同的值更新每個孩子的單個屬性。 我怎樣才能做到這一點?
我知道我可以使用批量賦值來更新每個孩子的屬性具有相同的值,即
Parent::findOrFail($id)->children()->update(["property"=>"new value"])
但是如何使用單獨設置的值來做到這一點? 例如,如果我的父母有 4 個孩子,我想用這樣的東西來設置它
Parent::findOrFail($id)->children()->update(["property"=>[1,2,3,4]])
然后孩子一有1,孩子二有2,依此類推。
這樣的事情應該可以工作,循環關系集合:
$values = [1, 2, 3, 4];
$parent
->children
->each(fn ($child, $k) => $child->update(["property" => $values[$k] ?? null]));
或者,如果您使用的是不受支持的舊版本 PHP:
$values = [1, 2, 3, 4];
$parent->children->each(function ($child, $k) use ($values) {
$child->update(["property" => $values[$k] ?? null]);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.