【问题标题】:How to compare old created_at value with Carbon::now timestamp and update it to the new timestamp?如何将旧 created_at 值与 Carbon::now 时间戳进行比较并将其更新为新时间戳?
【发布时间】:2021-08-17 18:14:53
【问题描述】:

我有这个请求函数将数据存储到数据库中

public function request(Request $request){
        $check = DB::table('lr2')->where('k_mk', $request->kode_mk)->where('id_mhs', $request->user_id)->exists();
        
        if(!$check){
        DB::table('lr2')->insert([
            'id_mhs' => $request->user_id,
            'k_mk' => $request->kode_mk,
            'mk' => $request->mk,
            'request_seats' => $request->r_seats,
            'status_request' => '1',
            'created_at' => Carbon::now(),
            'updated_at' => Carbon::now()
        ]);
        return redirect()->back()->with('alert', 'Request telah dikirim');
        }
        else{
            return redirect()->back()->with('message', 'Data existed in DB!');
        }
    }

它正确存储数据,我还创建了一个更新函数,如果有新请求,只需将状态请求再次更新为 0,并将旧的 created_at 和 updated_at 值更新为新的 created_at 和 updated_at 值。

public function request2(Request $request, $id){
        $check = DB::table('lr2')->where('k_mk', $request->kode_mk)->where('id_mhs', $request->user_id)->exists();
        if($check){
            DB::table('lr2')->where('id', $id)->update([
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),
                'status_request' => '0'
             ]);
            return redirect()->back()->with('message', "Request telah dikirim kembali");
        }
        else if(!$check){
        return redirect()->back()->with('message', "Request gagal");
        }
    }

它只适用于 status_request 值,旧的 created_at 和 updated_values 仍然存在。为什么会这样?

【问题讨论】:

  • 如果您要在每次更新时重写它,为什么还要使用created_at? ——你有保护这些价值观吗?你是进口碳吗?您是否使用 timestaps() 迁移助手方法生成了 created_atupdated_at?我想知道它们是否是正确的数据类型
  • 我使用 Carbon::now 生成它
  • 数据库中created_at的数据格式是什么?
  • 像这样:“2021-05-28 20:33:13”

标签: php laravel


【解决方案1】:

也许问题出在格式上。

试试这个:

$data = [
    'created_at'      => Carbon::now()->format("Y-m-d H:i:s"),
    'updated_at'      => Carbon::now()->format("Y-m-d H:i:s"),
    'status_request'  => '0'
]; 

DB::table('lr2')
  ->where('id', $id)
  ->update($data);

提示:重命名您的表“lr2”并包含更清晰的名称。这将帮助您的代码更加不稳定,并在您需要维护时提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多