拉拉维尔中的 id 命名约定


Id naming convention in Laravel

在最近的一个项目中,我为我的一个表提供了一个自定义 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)

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

但是,如果我在使用 Laravel 时绝对必须在任何给定表上使用自定义 ID 名称,那么解决此问题的最佳解决方案/解决方法是什么?

从文档中:

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

注意:Eloquent 还将假设每个表都有一个主键 名为 ID 的列。您可以定义一个 primaryKey 属性来覆盖它 公约。同样,您可以定义要覆盖的连接属性 使用时应使用的数据库连接的名称 模型。

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

protected $primaryKey = 'user_id';