web-dev-qa-db-ja.com

クエリビルダーがタイムスタンプを挿入しない

クエリビルダーを使用してすべてのフィールドが挿入されたデータを挿入していますが、created_atやupdated_atなどのタイムスタンプが挿入されておらず、すべてのクエリがデフォルトの0:0:0値を持っています

$id = DB::table('widgets')
            ->insertGetId(array(
                'creator' => Auth::user()->id,
                'widget_name' => $request->input('widget_name'),
                'pages' => json_encode($request->input('pages')),
                'domain' => $request->input('domain'),
                "settings" => $settings,
            ));
21
Samundra Khatri

大丈夫。田畑 created_atupdate_atおよびdeleted_atEloquentの「一部」です。あなたが使う Query Builder =>挿入は、これら2つのフィールドには影響しません(created_atおよびupdated_at)。次のように手動で定義する必要があります。

$id = DB::table('widgets')
        ->insertGetId(array(
            'creator' => Auth::user()->id,
            'widget_name' => $request->input('widget_name'),
            'pages' => json_encode($request->input('pages')),
            'domain' => $request->input('domain'),
            "settings" => $settings,
            "created_at" =>  \Carbon\Carbon::now(), # new \Datetime()
            "updated_at" => \Carbon\Carbon::now(),  # new \Datetime()
        ));
52
voodoo417