我正在尝试将默认主键从id
users
表更改为userId
,但Laravel身份验证机制始终会从id
检查users
表。例如:
Users :: check()和Users :: attempt()
这些函数总是检查id
表的users
属性,如何更改Laravel的这种行为。
答案 0 :(得分:5)
要覆盖用于搜索的主键,必须在User模型上定义primaryKey属性。
protected $primaryKey = 'userId';
答案 1 :(得分:3)
您可以使用
protected $primaryKey = 'Your_Primary_key';
在模特中。
可能值得指出的是,如果您定义的primaryKey不是整数键,您还需要添加以下内容:
public $incrementing = false;
否则密钥将被转换为int
答案 2 :(得分:1)
Eloquent假设外键应该具有匹配的值
id
(或自定义$primaryKey
)
因此,在您的User
模型中使用
protected $primaryKey = 'userId';