LoginSignup
7
3

More than 5 years have passed since last update.

LaravelのQueryBuilder使用時のtimestanpへの日付時刻処理について

Last updated at Posted at 2019-01-05

0.前提条件

環境:laravel5.3、cloud9、PHP7.0
laravelのmigrationファイルでは、以下の記載により、"created_at"と"updated_at"のカラムを自動で作成してくれて便利である。

2019_01_03_170250_create_user_table.php

 public function up() {
         Schema::create('table_names', function (Blueprint $table) {
         $table->timestamps();
         }
 }

しかし、ORM Eloquentモデルを利用すれば、insertやupdate時に自動でそれぞれのカラムに自動で日付を記載してくれるのだが、QueryBuilderを使用した場合は、どうやら自動的に入れてくれない(NULLになる)ようで、自分で入れる必要がある。

1.Carbonクラスを利用して日付を入れる。

解決方法としてはCarbonクラスを使うのが手取り早いようだ。


use Carbon\Carbon;

DB::table('table_names')->insert(
    ['created_at' => Carbon::now(),'updated_at' => Carbon::now()]
);

とりあえずこれでinsert時の日付時刻処理ができた。update時は以下の通り"updated_at"のみ更新すれば良い。

DB::table('table_names')->insert(
    ['updated_at' => Carbon::now()]
);

2.参考URL

https://www.larajapan.com/2016/11/26/laravel-5-3-%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%81%AEdb%E9%A0%85%E7%9B%AE%E5%90%8D%E3%81%AE%E6%8C%87%E5%AE%9A/
https://qiita.com/yudsuzuk/items/ff894bd0b76d4657741d

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3