Laravel 中的 ID 命名约定

Id naming convention in Laravel

在最近的一个项目中,我为我的一个 table 用户 table 自定义了一个 ID 名称(它被称为 user_id 而不是简单的 id ).

当我尝试向其中插入数据时,出现以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update users set active = 1, code = , updated_at = 2015-01-20 21:28:14 where id is null)

我通过将 table 的 id 列重命名为 id 来解决它,从而适合 Laravel 的偏好。

但是,如果我在使用 Laravel 时绝对必须在任何给定的 table 上使用自定义 ID 名称,那么对于这个问题最好的 solutions/workarounds 是什么?

来自文档:

http://laravel.com/docs/4.2/eloquent

Note: Eloquent will also assume that each table has a primary key column named id. You may define a primaryKey property to override this convention. Likewise, you may define a connection property to override the name of the database connection that should be used when utilizing the model.

因此,在您的模型中,您只需添加:

protected $primaryKey = 'user_id';