Samundra Khatri Samundra Khatri - 3 years ago 110
MySQL Question

Query builder not inserting timestamps

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

$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,
));

Answer Source

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

$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(), # \Datetime()
            "updated_at" => \Carbon\Carbon::now(),  # \Datetime()
        ));
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download