Laravel在递增字段时禁用自动"updated_at"

Rob*_*Rob 2 php timestamp laravel laravel-5

我正在增加表格中的一些总字段

$model->total_comments += 1;
$model->save();
Run Code Online (Sandbox Code Playgroud)

但是,这会触发更新日期updated_at.我想为这些情况禁用它.我知道我可以手动执行此操作并完全禁用时间戳字段的自动更新.但希望有一个简单的方法来做到这一点.

编辑:

从我的代码中添加示例.请注意,此模型上没有设置观察者.

namespace App\Models;

class Language extends \Illuminate\Database\Eloquent\Model
{

}

$router->get('/test', function () {
    $model = \App\Models\Language::find(1);

    $model->words_total = $model->words_total + 1;
    $model->save(['timestamps' => false]);

    return 'boo';
});
Run Code Online (Sandbox Code Playgroud)

luk*_*ter 5

请注意,框架中目前存在一个阻止第一个解决方案工作的错误.如果它得到修复,我会保持这篇文章的最新版本.Github问题


您可以传递一个options数组,save()并禁用该存储的时间戳:

$model->save(['timestamps' => false]);
Run Code Online (Sandbox Code Playgroud)

当然,您也可以在模型上设置属性,但true如果您有可能继续使用相同的模型实例,则需要将其设置回:

$model->timestamps = false;
$model->save();
$model->timestamps = true;
Run Code Online (Sandbox Code Playgroud)