使用Laravel更新:created_at在更新记录时被更新

时间:2019-05-28 05:33:52

标签: php mysql laravel

使用以下代码,更新功能运行良好。我将status字段更新为0的位置。该字段的默认值为1。它工作正常,但是只要使用此功能,created_at字段也会更新。应该是要更新的updated_at字段,而不是created_at

在我的notification_records表中,我有created_atupdated_at字段。

created_at数据类型为timestamp()的情况下,如果有新创建的通知记录并且updated_at字段仅用于修改,则使用此字段

public function notification(Request $request){
$company_id = auth()->user()->company_id;
DB::connection('mysql')->select("UPDATE notification_records SET status = '0' WHERE company_id = '".$company_id."' AND id = '".$request->ind."'");
}

我想做的是每当使用该函数时,唯一会更新created_atupdated_at之间的字段值的字段就是updated_at。是否可以使用上述代码来做到这一点?

1 个答案:

答案 0 :(得分:2)

这是laravel 5.2中的问题 您可以通过删除和读取时间戳来减轻这种情况,如下所示: 代替$table->timestamps();

$table->timestamp('created_at')->default('0000-00-00 00:00');
$table->timestamp('updated_at')->default('0000-00-00 00:00');

有关问题,请参见此处:Laravel changes created_at on update

解决方案从这里引用

https://github.com/spatie/laravel-medialibrary/issues/150