こんにちは!
今回は短い記事になりますが、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”に変更する必要がありますので、お忘れなく。
では、今回は以上です。
コメント