【问题标题】:Laravel Eloquent CalculateLaravel Eloquent 计算
【发布时间】:2013-07-27 07:29:41
【问题描述】:

我有一个模型,想在数据库中插入一些东西。

其中一个字段应为当前值添加一个数字(时间戳)

$purchases = new PurchasesModel($this->connection);
$purchases->updates_until = 'updates_until + ' . $updates_included_time;

这当然行不通,那我该怎么做呢?

updates_until 字段在数据库中被格式化为时间戳(但由于 mysql 4.1 处理为日期时间),$updates_included_time 是一个应该添加到时间戳的 int 值。

【问题讨论】:

    标签: php mysql laravel laravel-4 eloquent


    【解决方案1】:

    只需使用increments 方法:

    PurchasesModel::where('id', '=', 1)
                  ->increment('updates_until', 'INTERVAL ' . $updates_included_time . ' SECOND');
    

    您可以将SECOND 更改为MINUTE,或者任何更适合您的方式。

    【讨论】:

    • 对不起,如果我有点转储但我试过了:$purchases->updates_until->increment('INTERVAL ' . $updates_included_time . ' SECOND'); 但这似乎不起作用
    • 不不,这实际上是我的错。忘记第一个参数。 updates_until 部分作为increment 方法的第一个参数。
    • 嗯仍然是 '0000-00-00 00:00:00' :/
    • 检查产生的查询:dd(DB::getQueryLog())
    • 抱歉编辑了错误的文件。好吧,我有一个例外:Call to a member function increment() on a non-object 。我想这是因为我没有将模型称为静态:/。或不?这显然是一个对象。
    猜你喜欢
    • 2016-08-12
    • 2016-11-03
    • 2017-05-07
    • 2019-11-03
    • 2016-11-19
    • 2021-06-13
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多