gpt4 book ai didi

php - 如何使用 Laravel Eloquent 应用数组中的值并更新行?

转载 作者:行者123 更新时间:2023-11-29 12:13:17 25 4
gpt4 key购买 nike

如果我有一个这样的表:

+--------+-------------------+-----------+
| ID | Type | nOrder |
+--------+-------------------+-----------+
| 1 | A | 0 |
| 2 | A | 1 |
| 3 | A | 2 |
| 4 | B | 0 |
| 5 | B | 1 |
| 6 | B | 2 |
| 7 | B | 3 |
| 8 | B | 4 |
| 9 | C | 0 |
| 10 | C | 1 |
+--------+-------------------+-----------+

使用 Laravel Eloquent:

$sortOrder = [1, 2, 0, 3, 4];

$list = Type::where('Type', '=', 'B')
->orderBy('nOrder', 'ASC')
->update(['nOrder' => ??? ]); // how can i apply the $sortOrder values at ???

我的猜测是,更新看起来像这样:

->update(['nOrder' => $sortOrder[DB::raw('`nOrder`')] ]); // this doesn't work though

预期结果如下所示:

+--------+-------------------+-----------+
| ID | Type | nOrder |
+--------+-------------------+-----------+
| 1 | A | 0 |
| 2 | A | 1 |
| 3 | A | 2 |
| 4 | B | 1 |
| 5 | B | 2 |
| 6 | B | 0 |
| 7 | B | 3 |
| 8 | B | 4 |
| 9 | C | 0 |
| 10 | C | 1 |
+--------+-------------------+-----------+

最佳答案

您可以尝试以下方法...

$sortOrder = [1, 2, 0, 3, 4];
$updateArray = ['Type' => 'B', 'param2' => ''];
$collection = Type::whereIn('nOrder', $sortOrder);
$data = $collection->get();
$collection->update($updateArray);

我没有对此进行测试,但这应该可行。

关于php - 如何使用 Laravel Eloquent 应用数组中的值并更新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com