A user hasOne car.
users
id | name
1 | Bob
2 | Alice
cars
idMember | color | energy
1 | blue | 0.95
Inside the User class I have
public function car()
{
return $this->hasOne('App\Car','idMember');
}
I want to call updateOrCreate on the relation Model like this:
$user->car()->updateOrCreate(['idMember' => $user->id], ['color' => 'red', 'energy' => '0.1']);
However, I get the error message
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update
cars
setcolor
= red,energy
= 0.1,updated_at
= 2018-01-12 15:26:47 whereid
is null)
Why is he looking for
id
is null
?
Your cars model should have a primary key, commonly called "id". Create it.
This is how I solved my problem without adding an unnecessary auto incrementing id to the cars model:
In your model mention the primaryKey if primarykey is not "ID"
If you do not need icnrementing for your primary key
Thats it ..