如何在 Laravel 5.4 中使用替换更新

How to use replace update in Laravel 5.4

我有一个类别名称 A,路径为:1-2-

和一些 children 路径如下:

B: 1-2-3-

C: 1-2-4-

D: 1-2-5-

我想将类别 A 从 1 移动到 6,路径为:6-2-

如何将类别 B、C、D 更新为 6-2-%

我找到了 php 的代码:

更新类别 SET path = REPLACE(path, '1-2-', '6-2-') WHERE path LIKE '1-2-%'

但我不知道如何将它用于 laravel。

如果此代码有效,您可以使用

DB::raw('UPDATE category SET path = REPLACE(path, '1-2-', '6-2-') WHERE path LIKE '1-2-%'); 

你可以这样做:

DB::table("category")
->where("path", "LIKE", "1-2-%")
->update(["path" => DB::raw("REPLACE(path,  '1-2-', '6-2-')")]);

或者,如果您有类别 table 的模型:

Category::query()
->where("path", "LIKE", "1-2-%")
->update(["path" => DB::raw("REPLACE(path,  '1-2-', '6-2-')")]);