Skip to content
Advertisement

Get primary key of Eloquent model instance

I’m happy enough to work on a project with (not) very consistent column names in our MySQL database. We have camelCase, PascalCase, ‘Id’, ID and it’s driving me nuts. I’ve decided to start using Eloquent in our application (which is NOT Laravel). I would love to have a method of receiving the value of the primary key easily without knowing the column name e.g.

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

Is there a Eloquent way of doing this or am I gonna have to add this method myself?

Advertisement

Answer

You should have define a protected field in your model telling Eloquent what the primary key column is:

protected $primaryKey = 'guid';

Then you can access that property in your model

The model’s getKey() method should give you value of the primary key, while getKeyName() should tell you what column name is used for the primary key

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement