php 查询构建器不插入时间戳

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/33452124/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 23:29:52  来源:igfitidea点击:

Query builder not inserting timestamps

phpmysqllaravelquery-builder

提问by Samundra Khatri

I am using Query builder to insert data all fields are been inserted but timestamps like created_at and updated_at are not inserting they all have default 0:0:0 values my insert query is

我正在使用查询构建器插入数据,所有字段都已插入,但诸如 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,
            ));

回答by voodoo417

All right. Fields created_at,update_atand deleted_atare "part" of Eloquent. You use Query Builder=> inserting doesn't affect on these two fields (created_atand updated_at). You should define it manually like:

好的。字段created_atupdate_at以及deleted_at是“一部分” Eloquent。您使用Query Builder=> 插入不会影响这两个字段(created_atupdated_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()
        ));

回答by akmoji

In my case, I'm using date('Y-m-d H:i:s');to get current dateTime. It works every time.

就我而言,我正在使用date('Y-m-d H:i:s');获取当前日期时间。它每次都有效。

    $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" =>  date('Y-m-d H:i:s'),
            "updated_at" => date('Y-m-d H:i:s'),
        ));