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