当前位置:首页 > CMS教程 > 其它CMS > 列表

解决Laravel 使用insert插入数据,字段created_at为0000的问题

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-01 11:59:29 浏览: 评论:0 

今天小编就为大家分享一篇解决Laravel 使用insert插入数据,字段created_at为0000的问题,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

据官方文档的说明,使用Eloquent ORM,插数据库的时候可以自动生成created_at,updated_at,代码如下:

Model里的代码:

  1. <?php 
  2.  
  3. namespace App\Models; 
  4.  
  5. use Illuminate\Database\Eloquent\Model; 
  6.  
  7. class Notice extends Model 
  8.   protected $guarded = []; 
  9.  
  10.   //获取部门名称 
  11.   public function fromDep(){ 
  12.     return $this->belongsTo('App\Models\Department','from','id'); 
  13.   } 
  14.  
  15.   public function toDep(){ 
  16.     return $this->belongsTo('App\Models\Department','to','id'); 
  17.   } 
  18.  
  19.   public function toUser(){ 
  20.     return $this->belongsTo('App\User','create_user','id'); 
  21.   } 

新增的代码

  1. public function store(Request $request
  2.   { 
  3.     $data = $request->only(['title','sort','level','from','content','document']); 
  4.     $data['creater'] = Auth::user()->id; 
  5.     if(Notice::insert($data)){ 
  6.       return ResponseLayout::apply(true); 
  7.     }else
  8.       return ResponseLayout::apply(false); 
  9.     } 
  10.   } 

插入一条数据,数据库中created_at和updated_at字段为0000-00-00 00:00:00。

原因分析:原生的插入语句,Laravel是不会自动帮你插入created_at和updated_at字段的。

解决方法

create

  1. public function store(Request $request
  2.   { 
  3.     $data = $request->only(['title','sort','level','from','content','document']); 
  4.     $data['creater'] = Auth::user()->id; 
  5.     if(Notice::create($data)){ 
  6.       return ResponseLayout::apply(true); 
  7.     }else
  8.       return ResponseLayout::apply(false); 
  9.     } 
  10.   } 

save

  1. public function store(Request $request
  2.   { 
  3.     $data = $request->only(['title','sort','level','from','content','document']); 
  4.     $data['creater'] = Auth::user()->id; 
  5.     $notice = new Notice($data); 
  6.     if($notice->save()){ 
  7.       return ResponseLayout::apply(true); 
  8.     }else
  9.       return ResponseLayout::apply(false); 
  10.     } 
  11.   }

Tags: Laravel insert created_at

分享到: