簡體   English   中英

用不同的值更新多個 Eloquent 模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM