关于Laravel数据透视表及其时间戳(created_at / updated_at),我有一个小问题。
场景是:
将许多票证分配给许多用户,并查看何时。
我想保留__cpp_lib_hardware_interference_size 201703
的时间戳记,但是在创建迁移时希望摆脱created_at
列。
在我的研究中,我偶然发现了在模型中声明updated_at
的解决方案。但是数据透视表没有模型-它将禁用public $timestamps = false;
和created_at
。
除此之外,我没有找到与我的情况相符的结果。
有人可以在这里启发我吗? 谢谢
答案 0 :(得分:1)
但是数据透视表没有模型
这不是事实。从Laravel文档中:
如果您想定义一个自定义模型来表示 关系的中间表,您可以调用
using
方法 在定义关系时。定制的多对多枢轴模型 应该扩展Illuminate\Database\Eloquent\Relations\Pivot
类 而自定义多态多对多枢纽模型应扩展Illuminate\Database\Eloquent\Relations\MorphPivot
类。
为此,只需为数据透视表创建一个模型,然后其余步骤与普通模型几乎相同。
您可以将const UPDATED_AT = null;
设置为仅使用created_at
。 SO thread
答案 1 :(得分:1)
更新
在Laravel 5中,您可以使用withTimestamps()
这样来解决此问题并在数据透视表中维护时间戳。
return $this->belongsToMany('App\Role')->withTimestamps();
https://laravel.com/docs/5.1/eloquent-relationships#many-to-many