laravel 如何控制自动更新时间的两个字段

laravel version: 5.5.*

关闭自动更新时间字段

因为laravel的模型会自动更新 created_atupdated_at (默认是两个这样的名字)两个字段

  • 如果不想要这两个字段可以 关闭
namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesApp;
class User extends Model
{
    $timestamps = false;
}

关闭其中一个字段保留另一个

  • 只想要其中一个字段 created_at 只需要将定义一个常量将 updated_at 的值设置为 null 即可
namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesApp;
class User extends Model
{
    const UPDATED_AT = null;
}
  • 如果你使用的数据库迁移(migration) 在迁移的时候也可以设置
class CreateUsersTable extends Migration {
    public function up() {
        Schema::create('users', function(Blueprint $table) {
        $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
    });
}

修改某个字段的名称

namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesApp;
class User extends Model
{
    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';
}

使用

lavavel返回的时间不是单纯的字符串,而是一个 carbon 对象, 因为是一个对象,可以更加灵活的控制时间显示的格式, laravel 默认安装了这个包, 所以可以在laravel框架中可以直接使用, 在模板中也能直接使用

原文地址:https://www.cnblogs.com/liaohui5/p/10581593.html