#0.前提条件
環境:laravel5.3、cloud9、PHP7.0
laravelのmigrationファイルでは、以下の記載により、"created_at"と"updated_at"のカラムを自動で作成してくれて便利である。
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