Laravel在模型保存中两次插入差异

时间:2016-10-04 21:14:09

标签: php mysql database laravel laravel-5

我正在创建一个Laravel项目,但我有一个问题。

在保存模型之前,我正试图将两个时间戳之间的差异保存到数据库中:

我的表:

  $table->increments('id');
    $table->time('from');
    $table->time('to');
    $table->time('diff');

所以......在插入之前,计算这两次之间的差异并同时插入它。

这可能,任何人都可以帮助我吗?

三江源,

2 个答案:

答案 0 :(得分:2)

您可以挂钩到save()或更新()或创建()

所以在你的模型中添加上面的一个取决于你想要挂钩的那个(我认为如果我理解正确的话可以保存())并实现如下:

public static function boot()
{
    parent::boot();
    static::saving(
        function ($table) {
            $table->diff = strtotime($table->to) - strtotime($table->from);
        }
    );
}

答案 1 :(得分:0)

以秒为单位计算与之间的差异:

$row = TableModel::find(123);

$diff = strtotime($row->to) - strtotime($row->from);
$row->diff = $diff;
$row->save();