使用以下代码,更新功能运行良好。我将status
字段更新为0
的位置。该字段的默认值为1
。它工作正常,但是只要使用此功能,created_at
字段也会更新。应该是要更新的updated_at
字段,而不是created_at
。
在我的notification_records
表中,我有created_at
和updated_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_at
和updated_at
之间的字段值的字段就是updated_at
。是否可以使用上述代码来做到这一点?
答案 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
解决方案从这里引用