默认情况下,Laravel Eloquent 希望模型对应的数据库表中存在 created_at
和 updated_at
列,用于记录模型的创建时间和更新时间。 在创建或更新模型时,Eloquent 会自动设置或更新这些列的值。
然而,我们并不总是需要 Laravel Eloquent 在更新模型时自动更新 updated_at
或其他自定义的代表更新时间的字段,比如我们要更新用户资料或者帖子的访问/浏览次数时。
如果您总是不希望 Eloquent 自动管理这些列,您应该在模型上定义一个 $timestamps
属性,其值为 false
:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* 指示模型是否主动维护时间戳。
*
* @var bool
*/
public $timestamps = false;
}
如果您只是在特定时候不希望 Eloquent 自动管理这些列,那么也可以在模型操作中调用 $model->timestamps = false;
$user = User::find(1);
$user->timestamps = false;
$user->increment('profile_views_count');
$user->save();