在雄辩的更新中Concat

时间:2017-10-06 18:56:59

标签: php mysql laravel eloquent

如何在单个查询中使用CONCAT更新多个对象?

以下代码有效,但不安全:

Table::whereIn('id', $idArray)->where('user_id', $this->userId)
            ->update([
                'title' => DB::raw('CONCAT(title,'.$form->newPart.')')
            ]);

我尝试过的另一种方法如下,但不起作用:

Table::whereIn('id', $idArray)->where('user_id', $this->userId)
            ->update([
                'title' => DB::raw('CONCAT(title,?)', [$form->newPart])
            ]);

2 个答案:

答案 0 :(得分:1)

我认为你只需要调用setBindings方法。

    Table::whereIn('id', $idArray)->where('user_id', $this->userId)
        ->update([
            'title' => DB::raw('CONCAT(title, ?)')
        ])
        ->setBindings([$form->newPart]);

答案 1 :(得分:1)

由于类似的问题,我来自搜索。您的问题帮助我在这里找到了解决方案:

Table::whereIn('id', $idArray)->where('user_id', $userId)
                ->update([
                    'title' => DB::raw("CONCAT(title,'$title')")
                ],$title);