【发布时间】:2019-05-28 17:21:43
【问题描述】:
更新功能在以下代码中运行良好。我将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。有没有办法用上面的代码做到这一点?
【问题讨论】:
-
如果您没有将 created_at 属性设置为更新时,如果有其他选项可通过查询构建器方法或 eloquent 方法也可以在您的表结构中使用,那么编写原始 sql 查询不是一个好习惯currenttimestamp 然后它不会更新它也可以在你点击你的函数时在你的 updated_at 字段中传递日期
-
我删除了“on update CURRENT_TIMESTAMP”,它现在工作正常。我还添加了这些时间戳的默认值。实际上我使用的是不同的表连接,这就是为什么我更喜欢使用经典的 sql 查询而不是使用 eloquent 或 builder 方法
-
您也可以使用查询构建器方法(表的不同连接),但没关系,我只是说这不是一个好习惯。这不是你必须做或不做的事
-
感谢您的建议,已注明。一旦我得到一个新项目,我就会学习这些方法。因为我已经用这种编码开始了这个项目。