I've been trying to write a massive update
query with a where
clause, and I've found that Laravel 5.3 Eloquent Query Builder makes a syntax error.
The query is the following:
$query = $this->model
->where('state', "'pending'")
->whereRaw('created_at <= NOW() - INTERVAL 12 HOUR')
->update(['state' => "'timeout'"]);
Which is translated to this:
update `orders`
set `state` = 'timeout', `updated_at` = 2016-09-21 21:47:39
where `state` = 'pending' and created_at <= NOW() - INTERVAL 12 HOUR
This query keeps failing since the value for the column updated_at
is not written between apostrophes. I've tried inserting them manually and the query works.
How can I force Laravel to write the query like this? '2016-09-21 21:47:39'
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire