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

时间:2016-02-25 17:23:43

标签: php mysql laravel eloquent

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

vehicle_details::find($VehicleId);

这会在下面生成错误和查询。

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)

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

另一方面,可能会有一个增强功能。 laravel似乎是一个很好的功能,可以考虑它为表格生成模型的主键。然后从那里,对生成的模型类代码进行必要的更改,而不是仅仅假设'id'将始终是表中的主键。

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

2 个答案:

答案 0 :(得分:2)

使用

protected $primaryKey = "vehicle_id"

在您的模型中

答案 1 :(得分:0)

在你的模特中

<?php 
class vehicle_detail extends Models{
    $primaryKey ="vehicle_id"
}