使用 Postgres 在 Laravel 5.3 中更新区分大小写的数据库字段

Update Case-Sensitive DB Field In Laravel 5.3 With Postgres

我正在尝试使用 laravel 中的原始 SQL 更新数据库列字段。值得一提的是,更新代码已写入 MySQL 驱动器,但现在我使用 Postgres。列名是 dayID。所以更新码是:

DB::update("update table set travel = ... WHERE dayID = {$this->dayID}");

我必须使用原始 SQL 因为我对多边形类型进行了一些更新。

问题是 laravel 自动将 dayID 转换为 dayid 所以我得到一个错误:

column "dayid" does not exist

我试图设置一个变量以便在更新查询中使用它,但它也因同样的错误而失败:

$var = "dayID";
DB::update("update table set travel = ... WHERE ".$var." = {$this->dayID}");

我该如何解决?

请尝试 DB::table 更新如下:

DB::table('table_name')
        ->where('dayID', $this->dayID)
        ->update(['travel' => '...']);

Laravel 文档:

https://laravel.com/docs/5.3/queries#updates