【Laravel】insertメソッドの注意点

【Laravel】insertメソッドの注意点

こんにちは!

今回は短い記事になりますが、Laravelのinsertメソッド使用時の注意点についてお話していきたいと思います。

insertメソッドに渡すパラメータ指定について

insertメソッドはcreated_atやupdated_atカラムを自動更新してくれません。

そのため、created_atやupdated_atをパラメータとして指定し、値を渡しておく必要があります。

例えば、以下のコード。

$params = [
  'todo_date'  => $request->todo_date,
  'todo_body'  => $request->todo_body,
];

$data = DB::table('todos')->insert($params);
return $data;

これだと、created_atとupdated_atはどちらもNULLとしてテーブルに登録されることになります。

そのため、正しくは以下のように指定する必要がある。

$params = [
  'todo_date'  => $request->todo_date,
  'todo_body'  => $request->todo_body,
  'created_at' => now(),
  'updated_at' => now(),
];

$data = DB::table('todos')->insert($params);
return $data;

これで、created_atとupdated_atに時刻が入るようになります。

ただし、注意点としてLaravelはデフォルトではタイムゾーンが”UTC”と登録されているため、config.php/app.phpのタイムゾーンを”Asia/Tokyo”に変更する必要がありますので、お忘れなく。

では、今回は以上です。