我最近在我的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上运行的相同源代码并产生所需的结果。
答案 0 :(得分:1)
这是因为用户为每个视图更新了您的views
字段。
您可以在增加视图之前禁用更新时间戳字段:
$obj->timestamps = false;
$obj->views += 1;
$obj->save();