【发布时间】:2015-11-16 11:34:05
【问题描述】:
我有两个表之间的关系 - 多对多。
我使用sync()方法保存相关模型:
public function tags()
{
return $this->belongsToMany('Tag')->withTimestamps();
}
通过这种方式,我可以设置时间戳字段 - created_at 和 updated_at,但是如何覆盖这些日期的格式。
我已经使用以下内容覆盖了模型的格式:
protected function getDateFormat()
{
return 'U';
}
但在使用sync() 时似乎不起作用。表格中的所有记录都以默认日期格式保存。
【问题讨论】:
-
数据透视表中的时间戳?数据透视表的全部意义在于充当 id 之间的桥梁。它们不应该包含任何列,而是 ids。但如果你真的因为某些邪恶的原因需要这样做,你可以这样处理:stackoverflow.com/questions/24441395/…
-
@dave 我只想跟踪帖子何时更改标签,这是一种方法。我在问如何在将值存储在数据库中时更改日期的格式。
-
在花了一些时间探索
Illuminate\Database\Eloquent\Relations\BelongsToMany的内部之后,我发现时间格式是硬编码的。作为替代解决方案,您可以让 Laravel 以它的方式更新时间戳,然后从该格式创建一个时间戳。为什么不?这会做你想做的事,你会得到一个时间戳(刚刚测试过,它工作正常)。 -
@dave 这也是我发现的。我想我此时不会使用
sync(),因为所有其他字段都在unix时间戳中,并且数据库很大。我们需要转换我们拥有的所有时间戳,这需要时间。在不久的将来会这样做。感谢您的帮助!