【问题标题】:Laravel firstOrNew based on created_at same dateLaravel firstOrNew 基于 created_at 同一日期
【发布时间】:2021-11-16 16:12:18
【问题描述】:

我正在使用流明。我想使用基于 created_at 的 firstOrNew。例如,在我的表中存在 created_at = 2021-09-23 14:42:13 的数据。对于这种情况,如果请求日期值变为当天,它将更新。在这里我尝试了

$tableObj = User::firstOrNew([
        'created_at' => Carbon::today() // date('Y-m-d')
    ]);
$tableObj ->mobile= '5457874545';
$tableObj ->save();

这里总是插入新行。提前致谢

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    你能格式化日期吗 试试

     $tableObj = User::firstOrNew([
            'created_at' => Carbon::today()->format('Y-m-d') // date('Y-m-d')
        ]);
    $tableObj ->mobile= '5457874545';
    $tableObj ->save();
    

    或者使用 laravel 的 UpdateOrCreate 方法

      $tableObj = User::updateOrCreate(
                   ['created_at' => Carbon::today()->format('Y-m-d')], 
                   ['mobile'=>'5457874545']
                 );
    

    【讨论】:

    • 感谢您的回答。但在 created_at 中,它包含日期时间,即 Y-m-d h:i:s 。那么,我该如何与今天(Y-m-d)联系起来
    • 每当您创建或更新您的记录时,日期将保持不变,但您的时间会改变,因为您设置了 Carbon::today()。因此,您的日期匹配,但时间会改变,它将创建新条目。
    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多