Laravel 在 updateOrCreate 中增加列并获取模型

Laravel increment column in updateOrCreate and get the model

我正在尝试通过这样做在一个查询中增加一列并更新或创建一条记录:

$model = Model::updateOrCreate([
   'email' => $email
], ['received_at' => $received_at])->incremet('received_count');

这也完成了我想要的工作。它更新或创建记录并递增 received_count 列。

但是在查询之后,我想获取updated/created行,但是当我记录$model时,它只记录0 or 1。我可以确认这是因为 ->increment().

但老实说,除了我目前的做法,我不知道如何增加 received_count 列。

我如何实现让它更新或创建一条记录,同时递增received_count列,并在所有这些之后,returns得到updated/created对象?

我希望尽可能多地在一个查询中完成所有这些。获取模型应该是记忆.

incremet 后的新模型:

  $model = Model::updateOrCreate([
            'email' => $email
        ], ['received_at' => $received_at]);
        $model->incremet('received_count');
        $model->fresh();
$model = Model::updateOrCreate(['email' => $email], ['received_at' => $received_at]);

$model->increment('received_count');
$model->refresh(); // this will refresh all information for your model.

或者您可以简单地:

$model = Model::updateOrCreate(['email' => $email], ['received_at' => $received_at]);
tap($model)->increment('id'); // this will return refreshed model.