【问题标题】:Laravel update pivot timestamps to specific date instead of attach dateLaravel 将数据透视时间戳更新为特定日期而不是附加日期
【发布时间】:2021-04-23 23:00:16
【问题描述】:

我有一个一对多的关系,它使用数据透视表来附加相关模型。

标准时间戳工作正常,created_at / updated_at 填充了关系创建或修改的日期。

但是,我有一种情况想覆盖时间戳值。

我想做这样的事情:

$user->tickets()->attach($ticket->id)
->withTimestamps(['created_at' => '2021-01-01 00:00:01','updated_at' => '2021-01-01 00:00:01']);

有人可以帮忙吗?

【问题讨论】:

  • @TimLewis 这是正确的语法,不妨把它作为答案

标签: laravel


【解决方案1】:

正如@N69S 所确认的,在附加期间包含或覆盖列值的正确语法是传递嵌套列的关联数组:

$user->tickets()->attach([
  $ticket->id => [
    'created_at' => '2021-01-01 00:00:01',
    'updated_at' => '2021-01-01 00:00:01'
  ]
]);

这应该会在您的数据透视表中添加一条记录,其中包含正确的用户 ID、工单 ID 和覆盖的时间戳。

【讨论】:

  • 感谢两位的帮助
猜你喜欢
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多