J'ai trouvé this answer sur le sujet, mais cela ne fonctionne pas pour moi.Laravel changements created_at sur la mise à jour
Alors, je fais une entrée dans la base de données:
// Write lead to database
$lead = Lead::create($lead_data);
Et les horodatages ressemblent à cela, ce qui est bon:
| 2016-01-08 10:34:15 | 2016-01-08 10:34:15 |
Mais je fais une demande à un serveur externe, et je dois mettre à jour la ligne:
$lead->user_id = $response['user_id'];
$lead->broker_id = $response['broker_id'];
$lead->save();
et le champ created_at obtient changé:
| 2016-01-08 04:34:17 | 2016-01-08 10:34:17 |
Comment résoudre ce problème?
EDIT
je besoin d'une solution qui vient modifier le comportement sans suppression de colonnes ou remise à zéro des migrations. Le correctif doit être effectué sur une base de données en direct sans toucher aux données. Comme suggéré ci-dessous, j'ai essayé la migration suivante:
$table->datetime('created_at')->default(DB::raw('CURRENT_TIMESTAMP'))->change();
mais rien ne se passe. Le champ created_at est toujours modifié lors de la mise à jour.
Comment chargez-vous la variable $ lead avant de procéder à la mise à jour? –
La variable '$ lead' est remplie avec la méthode' create', mais de toute façon, j'ai essayé cela aussi avec '$ lead = Lead :: find ($ lead-> id);' après l'écriture, le problème persiste. – Skatch