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

时间:2017-03-20 03:31:45

标签: laravel-5 laravel-eloquent

我有一个带路径的类别名称A:1-2 -

和一些路径如下的孩子:

B:1-2-3 -

C:1-2-4 -

D:1-2-5 -

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

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

我发现这个代码用于php:

UPDATE类别SET路径= REPLACE(路径,' 1-2 - ',' 6-2 - ')WHERE路径LIKE' 1-2-% '

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

2 个答案:

答案 0 :(得分:0)

您可以这样做:

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

或者,如果您有用于类别表的模型:

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

答案 1 :(得分:-1)

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

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