Что Laravel изменить первичный ключ по умолчанию из таблицы users

Я пытаюсь изменить первичный ключ по умолчанию из id of users таблицы userId, но механизм аутентификации Laravel всегда проверяет id с users таблица. Пример:

Users:: check () и Users:: attempt()

эти функции всегда проверяют на на users таблица, Как изменить это поведение Laravel.

3 ответов


чтобы переопределить первичный ключ, используемый для поиска, необходимо определить свойство primaryKey в модели пользователя.

protected $primaryKey = 'userId';

можно использовать

protected $primaryKey = 'Your_Primary_key';

в модели.

вероятно, стоит указать, что если определяемый вами primaryKey не является целочисленным ключом, вам также нужно добавить следующее:

public $incrementing = false;

в противном случае ключ будет приведен к int


Eloquent предполагает, что внешний ключ должен иметь значение, соответствующее id (или custom $primaryKey)

так, в своем User модель использовать

protected $primaryKey = 'userId';