Laravel:MySQL每天都会自动更新我的updated_at字段,而不会对文章进行任何更新

时间:2017-08-15 07:17:30

标签: mysql laravel laravel-5 laravel-5.3

我最近在我的localhost上使用Laravel 5.4开发了一个博客应用程序,一切正常。但是,当我在互联网上的远程服务器上上传我的应用程序时,每个帖子上的updated_at字段每天都会自动更新。

在我的本地计算机上运行时相同的代码工作正常,并且只有在更新帖子时才更新updated_at字段。我猜这个问题是在数据库配置的层面,但我不知道如何解决这个问题。

源代码: 迁移

Schema::create('posts', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->string('featured_image');
    $table->string('slug')->unique();
    $table->text('body');
    $table->boolean('published')->default(false);
    $table->unsignedInteger('user_id');
    $table->integer('views')->default(0);
    $table->timestamps();
    $table->softDeletes();

    $table->foreign('user_id')->references('id')->on('users');
});

我在我的模型Post.php中有这个:

    protected $dates = ['created_at', 'updated_at', 'deleted_at'];

我只是为了怀疑而添加源代码,因为它是在我的localhost上运行的相同源代码并产生所需的结果。

1 个答案:

答案 0 :(得分:1)

这是因为用户为每个视图更新了您的views字段。

您可以在增加视图之前禁用更新时间戳字段:

$obj->timestamps = false;
$obj->views += 1;
$obj->save();