Laravel 5函数“;latest()";不会';当电子邮件插入数据库时,无法工作


Laravel 5 function "latest()" doesn't work, when emails are inserted to database

我正在通过数据库中的查询添加电子邮件:

DB::table('email')->insert(['from'=>$from,'body'=>$message,'message_no'=>$message_number]);

然后我必须显示保存在数据库中的电子邮件。所以,为了在显示方法的顶部显示新的电子邮件,我使用了:

$data = Email::latest()->get();
return view('emails.display',compact('data'));

但是,新的电子邮件已经垫底了。然后我在数据库中的表中检查了"created_at"列中有00.00.00。

我的问题是,我能做些什么来填充数据库中的"created_at"文件。

您可以从类中直接创建电子邮件,如下所示:

Email::create(['from'=>$from,'body'=>$message,'message_no'=>$message_number]);

它应该自动填写created_at和updated_at

您正在直接插入DB表(不使用Laravel Eloquent),因此必须手动设置时间。。

DB::table('email')->insert(['from'=>$from,'body'=>$message,'message_no'=>$message_number, 'created_at'=>'Carbon'Carbon::now()->toRfc822String()]);

p.S>Laravel正在使用这个Carbon库来生成时间,因此它应该可以使用。