Laravel 4.2 - 将时间添加到时间戳
Laravel 4.2 - Adding time to timestamp
在 Laravel 4.2 中,当在数据库中创建记录时,使用 eloquent,我们可以创建 created_at 和 updated_at 时间戳。
我想在我正在使用的 table 中添加第三列,称为 expires
,我想将该列的值设置为 created_at + 72 hours
有没有 "Laravel" 方法来做到这一点?要访问 created_at 值?或者我应该以不同的方式处理这个问题?
Laravel 的 created_at
是 Carbon 的一个实例。使用访问器,我们可以像这样填充 $model->expires
:
public function getExpiresAttribute() {
$expires = clone $this->created_at;
$expires->addHours(72);
return $expires;
}
如果您希望能够查询 值(而不是仅仅为了显示而计算),您需要将其存储在数据库中。要让它自动填充,您可以告诉 Laravel 它是一个日期列并使用观察者:
public function getDates(){
return ['created_at', 'updated_at', 'expires'];
}
public static function boot() {
parent::boot();
self::creating(function($model) {
$model->expires = clone $model->created_at;
$model->expires->addHours(72);
}
}
在 Laravel 4.2 中,当在数据库中创建记录时,使用 eloquent,我们可以创建 created_at 和 updated_at 时间戳。
我想在我正在使用的 table 中添加第三列,称为 expires
,我想将该列的值设置为 created_at + 72 hours
有没有 "Laravel" 方法来做到这一点?要访问 created_at 值?或者我应该以不同的方式处理这个问题?
Laravel 的 created_at
是 Carbon 的一个实例。使用访问器,我们可以像这样填充 $model->expires
:
public function getExpiresAttribute() {
$expires = clone $this->created_at;
$expires->addHours(72);
return $expires;
}
如果您希望能够查询 值(而不是仅仅为了显示而计算),您需要将其存储在数据库中。要让它自动填充,您可以告诉 Laravel 它是一个日期列并使用观察者:
public function getDates(){
return ['created_at', 'updated_at', 'expires'];
}
public static function boot() {
parent::boot();
self::creating(function($model) {
$model->expires = clone $model->created_at;
$model->expires->addHours(72);
}
}