【问题标题】:一个查询中的多个更新
【发布时间】:2022-01-20 22:15:59
【问题描述】:

我遇到了一个“问题”。我正在尝试使用以下代码更新一个查询中的多个列:

Bewerbungen::query()
                    ->where('Stellenanzeigen_ID', $bewerbung->Stellenanzeigen_ID)
                    ->where('bewerber_email', '!=', $bewerbung->bewerber_email)
                    ->update(['is_Canceled' => 1]);

Bewerbungen::query()
                    ->where('Stellenanzeigen_ID', $bewerbung->Stellenanzeigen_ID)
                    ->where('bewerber_email', '!=', $bewerbung->bewerber_email)
                    ->update(['cancel_Date' => $date]);

它工作正常,但感觉没有必要进行两次完整查询,但是当我这样尝试时:

Bewerbungen::query()
                    ->where('Stellenanzeigen_ID', $bewerbung->Stellenanzeigen_ID)
                    ->where('bewerber_email', '!=', $bewerbung->bewerber_email)
                    ->update(['is_Canceled' => 1])
                    ->update(['cancel_Date' => $date]);

我收到错误call to a member function update() on int 我还尝试将此语句直接包含在update() 语句中:

    $date = Carbon::now()->toDateString();

我也试过这个:

Bewerbungen::query()
                    ->where('Stellenanzeigen_ID', $bewerbung->Stellenanzeigen_ID)
                    ->where('bewerber_email', '!=', $bewerbung->bewerber_email)
                    ->update(['is_Canceled' => 1], ['cancel_Date' => $date]);
                

这也不起作用,因为第二个 [] 是灰色的。 cancel_Date 的数据类型为 date

两个单独的语句可以正常工作,但我很好奇是否可以以某种方式保存一些代码。

【问题讨论】:

  • 尝试:->update(['is_Canceled' => 1, 'cancel_Date' => $date])

标签: php sql laravel eloquent


【解决方案1】:

对于 Laravel 中的更新,您需要在单个数组中写入更新值。您不能添加两个时间更新函数和两个不同的数组。 您可以在 Single update 和 array 中添加多个值。

您可以查看以下代码:

Bewerbungen::query()
        ->where('Stellenanzeigen_ID', $bewerbung->Stellenanzeigen_ID)
        ->where('bewerber_email', '!=', $bewerbung->bewerber_email)
        ->update(['is_Canceled' => 1,'cancel_Date' => $date]);

【讨论】:

  • 是的。哇。除了谢谢你,我不知道该说什么,此时我不得不思考我的整个人生。这很明显,但我很确定我尝试了每一种可能性。我太愚蠢了哈哈。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2021-01-15
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
相关资源
最近更新 更多