Laravel更改users表的默认主键

时间:2016-11-01 04:52:31

标签: php laravel laravel-5

我正在尝试将默认主键从id users表更改为userId,但Laravel身份验证机制始终会从id检查users表。例如:

  

Users :: check()和Users :: attempt()

这些函数总是检查id表的users属性,如何更改Laravel的这种行为。

3 个答案:

答案 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';