Dieser Artikel gibt Ihnen hauptsächlich eine Zusammenfassung mehrerer Methoden zum Öffnen von onlycreated_at in Laravel ORM. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
Methode eins:
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”,
Methode zwei:
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也不影响
Methode drei:
class User extends Model { //重写setUpdatedAt方法 public function setUpdatedAt($value) { // Do nothing. } //public function setCreatedAt($value) //{ // Do nothing. //} }
Methode 4:
class User extends Model { //重写setUpdatedAt方法 public function setUpdatedAtAttribute($value) { // Do nothing. } //public function setCreatedAtAttribute($value) //{ // Do nothing. //} }
ps:
kann auch in der Migration eingestellt werden (ich habe es nicht speziell ausprobiert, ich habe es in anderen Artikeln gesehen)
class CreatePostsTable extends Migration { public function up() { Schema::create('posts', function(Blueprint $table) { $table->timestamp('created_at') ->default(DB::raw('CURRENT_TIMESTAMP')); }); }
Verwandte Empfehlungen:
laravel5 konvertiert „created_at“ in das gewünschte Format
Das obige ist der detaillierte Inhalt vonMehrere Laravel-ORM-Methoden, um nur „created_at' zu aktivieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!