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

Laravel

こんにちは!

今回は短い記事になりますが、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”に変更する必要がありますので、お忘れなく。

では、今回は以上です。

コメント

タイトルとURLをコピーしました