本文主要为大家分享一篇laravel orm 只开启created_at的几种方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。
方法一:
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'));
});
}
相关推荐:
laravel5把created_at转成自己想要的格式
以上就是几种laravel orm 只开启created_at的方法的详细内容。
