在Laravel中的Id命名约定

时间:2015-01-27 21:04:40

标签: php mysql laravel eloquent fluent

在最近的一个项目中,我有一个用户表的自定义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名称,那么这个问题的最佳解决方案/解决方法是什么?

1 个答案:

答案 0 :(得分:3)

来自文档:

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

  

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

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

protected $primaryKey = 'user_id';