在数据透视表中附加数据时时间戳不更新

Posted

技术标签:

【中文标题】在数据透视表中附加数据时时间戳不更新【英文标题】:Timestamps are not updating while attaching data in pivot table 【发布时间】:2014-11-01 19:27:58 【问题描述】:

我正在使用以下附加语句在数据透视表中创建一行。

$music = Music::find(1);
$music->users()->attach(1);

这会在数据透视表中插入一行,但它不会更新时间戳。时间戳仍然是 0000-00-00 00:00:00

有什么方法可以更新数据透视表中的时间戳。 ?

提前致谢,

【问题讨论】:

【参考方案1】:

如果您希望您的数据透视表自动维护 created_at 和 updated_at 时间戳,使用withTimestamps() 关系定义的方法。

return $this->belongsToMany('Role')->withTimestamps();
对于 Laravel 4.2:Working With Pivot Tables Laravel 5.0:Working With Pivot Tables Laravel 5.1:Retrieving Intermediate Table Columns Laravel 5.2:Filtering Relationships Via Intermediate Table Columns Laravel 5.3:Filtering Relationships Via Intermediate Table Columns Laravel 5.4:Retrieving Intermediate Table Columns Laravel 5.5:Retrieving Intermediate Table Columns Laravel 5.6:Retrieving Intermediate Table Columns Laravel 5.7:Retrieving Intermediate Table Columns Laravel 5.8:Retrieving Intermediate Table Columns

【讨论】:

这必须在关系的两边吗?还是只有一侧? @Noitidart 我刚刚检查过,看来它需要在关系的双方才能工作。

以上是关于在数据透视表中附加数据时时间戳不更新的主要内容,如果未能解决你的问题,请参考以下文章

多对多关系 - 如何更新数据透视表中的属性

将数据透视结果附加(插入)到现有 SQL 表中

如何在 Laravel 中使用附加或同步方法在数据透视表中插入多个值

Excel数据透视表怎么刷新数据源

使用表格从数据透视表中过滤数据

如何获取附加数据透视表的数据?