更新后返回集合()?

2022-08-31 00:25:00

使用Raw,如何返回更新行的集合?

例如:

$updated = DB::table('users')->where('id', 1)->update(['votes' => 123]);

我本来以为会返回更新的集合行,但它返回了 1。dd($updated)

{{$updated->votes}} should return 123

答案 1

试试这个

$updated = tap(DB::table('users')->where('id', 1))
    ->update(['votes' => 123])
    ->first();


答案 2

这不是它的工作方式。您不能指望此查询会返回一个对象:

$updated = DB::table('users')->where('id', 1)->update(['votes' => 123]);

如果您只想使用问题中提到的查询构建器,则需要手动获取对象:

$data = DB::table('users')->where('id', 1)->first();

使用Eloquent,您可以使用:updateOrCreate()

$data = User::where('id', 1)->updateOrCreate(['votes' => 123]);

这将返回一个对象。 将返回布尔值,因此您无法在此处使用它。update()


推荐