更改 Laravel 模型生成中默认主键的名称

odu*_*ffy 2 php mysql laravel eloquent

我已经从表生成了一个模型,并在控制器中编写了以下内容以返回所有记录:

vehicle_details::find($VehicleId);
Run Code Online (Sandbox Code Playgroud)

这会生成以下错误和查询。

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'vehicle_details.id' in 'where clause' (SQL: select * from `vehicle_details` where `vehicle_details`.`id` = 1 limit 1)
Run Code Online (Sandbox Code Playgroud)

我想知道如何更改 eloquent 使用的 id。它默认为“id”,但表中的主键是“vehicle_id”。我猜我需要以某种方式更改我生成的模型类?

另一方面,这里可能需要进行改进。对于 Laravel 来说,考虑到为其生成模型的表中的主键似乎是一个很好的功能。然后从那里对生成的模型类代码进行必要的更改,而不是仅仅假设“id”始终是表中的主键。

非常感谢任何帮助,谢谢。

ose*_*tow 5

使用

protected $primaryKey = "vehicle_id"
Run Code Online (Sandbox Code Playgroud)

在你的模型中