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

标签 php mysql laravel eloquent

如果我有一个这样的表:

+--------+-------------------+-----------+
| 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/

相关文章:

jquery - 如何添加要删除的警告模态

mysql - 从本地文件更新 MySQL 表

php - Laravel:字段不插入

php - 使用 Android 4.03 将 Android (Java) 文件上传到 PHP 服务器失败

php - 如何在另一个 PHP 页面中显示信息

mysql - 错误 2003 (HY000) : Can't connect to MySQL server on 'hostname' (111)

javascript - Laravel 5 : show comments using Vue.js

php - 设备上的 android 应用程序连接到 php 脚本

php - Laravel 多重连接?

php - Laravel 5.6 中如何打印表格数据?