在最近的一个项目中,我有一个用户表的自定义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名称,那么这个问题的最佳解决方案/解决方法是什么?
答案 0 :(得分:3)
来自文档:
http://laravel.com/docs/4.2/eloquent
注意:Eloquent还会假设每个表都有一个主键 列名为id。您可以定义primaryKey属性来覆盖它 惯例。同样,您可以定义要覆盖的连接属性 使用时应使用的数据库连接的名称 模特。
因此,在您的模型中,您只需添加:
protected $primaryKey = 'user_id';