【发布时间】:2021-08-11 19:30:12
【问题描述】:
我使用 laravel 作为我的 web 项目,我在更新数据库时遇到了问题。
发布数据后,我的邮递员收到一条错误消息。这是消息。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update `data_transaksis` set `jumlah_transaksi` = 10000, `info` = Transaksi 2 Mysql Update, `data_transaksis`.`updated_at` = 2021-05-23 03:59:54 where `id` is null)
这是我更新数据库行的函数代码。
$dataTransaksi = DataTransaksi::where('transact_id', $request->transact_id)->first();
$dataTransaksi->jumlah_transaksi = $request->jumlah_transaksi;
$dataTransaksi->info = $request->info;
$dataTransaksi->save();
return response($dataTransaksi, 200)->header('Content-type', 'application/json');
我不知道我的代码发生了什么,我在查询生成器上搜索“transact_id”,但错误消息显示我搜索“id”。这很古怪。我的问题有什么解决方案吗?
编辑: 这是我的表结构。 https://imgur.com/gallery/s5Ltmek
【问题讨论】:
-
您的数据库中有
id列吗?transact_id的值是多少 -
我的桌子上没有名为“id”的列。我的“data_transaksi”表的主键是“transact_id”。就是这样,没有“id”列或类似的东西。
-
尝试打印
DataTransaksi::where('transact_id', $request->transact_id)->toSql(),这将有助于stackoverflow.com/questions/29347253/… -
select * from
data_transaksiswheretransact_id= ? -
你在课堂上设置了
protected $primaryKey = 'transact_id',laravel.com/docs/8.x/eloquent#primary-keys