Blogger Information
Blog 142
fans 5
comment 0
visits 129551
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
laravel ORM 只开启created_at的几种方法总结
php开发大牛
Original
1429 people have browsed it

方法一:

class User extends Model {
 public $timestamps = false;//关闭自动维护
 public static function boot() {
   parent::boot();
   #只添加created_at不添加updated_at
   static::creating(function ($model) {
     $model->created_at = $model->freshTimestamp();
     //$model->updated_at = $model->freshTimeStamp();
   });
 }
}
此处有坑:使用create方法创建一条记录时返回值的created的值是这样的:
“created_at”: {
“date”: “2017-09-27 13:47:12.000000”,
“timezone_type”: 3,
“timezone”: “Asia/Shanghai”
},
并不是想象中的
“created_at”: “2017-09-27 13:49:39”,

方法二:

class User extends Model {
 const UPDATED_AT = null;//设置update_at为null
 //const CREATED_AT = null;
}
此处有坑:使用destroy删除会报错
Missing argument 2 for Illuminate\Database\Eloquent\Model::setAttribute()
使用delete不影响,wherein也不影响

方法三:

class User extends Model {
 //重写setUpdatedAt方法
 public function setUpdatedAt($value) {
   // Do nothing.
 }
 //public function setCreatedAt($value)
 //{
   // Do nothing.
 //}
}

方法四:

class User extends Model {
 //重写setUpdatedAt方法
 public function setUpdatedAtAttribute($value) {
   // Do nothing.
 }
 //public function setCreatedAtAttribute($value)
 //{
   // Do nothing.
 //}
}

ps:

在Migration中也可以设置(具体没试过,在别的文章里看见的)

class CreatePostsTable extends Migration {
 public function up() {
  Schema::create('posts', function(Blueprint $table) {
  $table->timestamp('created_at')
  ->default(DB::raw('CURRENT_TIMESTAMP'));
 });
}


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post