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('AppCar','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
?
Advertisement
Answer
This is how I solved my problem without adding an unnecessary auto incrementing id to the cars model:
class Car extends Model { protected $primaryKey = 'idMember'; public $incrementing = false;