Подтвердить что ты не робот

Получить первичный ключ экземпляра модели Eloquent

Я достаточно доволен работой над проектом с (не) очень согласованными именами столбцов в нашей базе данных MySQL. У нас есть camelCase, PascalCase, "Id", ID, и это заставляет меня гатьки. Я решил начать использовать Eloquent в нашем приложении (это не Laravel). Я хотел бы иметь способ получения значения первичного ключа легко, не зная имя столбца, например.

// User primary key column is called UserID
$user = User::find(1337);
$userId = $user->id(); // = 1337

Есть ли явный способ сделать это, или мне придется добавить этот метод самостоятельно?

4b9b3361

Ответ 1

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

protected $primaryKey = 'guid';

Затем вы можете получить доступ к этому свойству в своей модели

Метод модели getKey() должен дать вам значение первичного ключа, а getKeyName() должен указать вам, какое имя столбца используется для первичного ключа