programing

쿼리 작성기가 타임스탬프를 삽입하지 않음

megabox 2023. 9. 16. 08:55
반응형

쿼리 작성기가 타임스탬프를 삽입하지 않음

쿼리 작성기를 사용하여 모든 필드가 삽입되었지만 created_at 및 update_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,
            ));

좋아요.필드created_at,update_at그리고.deleted_at의 "부분"입니다.Eloquent. 당신이 사용.Query Builder=> 삽입은 이 두 필드에 영향을 주지 않습니다 (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()
        ));

제 경우에는 제가 사용하고 있는.date('Y-m-d H:i:s');현재 dateTime을 가져옵니다.매번 작동합니다.

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

또 다른 방법은 데이터베이스가 MySQL 데이터베이스라고 가정할 때 raw expression과 'CURRENT_TIMEstamp'를 값으로 사용하는 것입니다.

$now = DB::raw('CURRENT_TIMESTAMP');
$rowID = DB::table('user')->insertGetId([
  'name' => $request->name,
  'updated_at' => $now,
  'created_at' => $now
]);

언급URL : https://stackoverflow.com/questions/33452124/query-builder-not-inserting-timestamps

반응형