【问题标题】:Laravel 5 function "latest()" doesn't work, when emails are inserted to database将电子邮件插入数据库时​​,Laravel 5 函数“latest()”不起作用
【发布时间】:2015-12-04 12:58:16
【问题描述】:

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

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”。

【问题讨论】:

    标签: php database email laravel-5


    【解决方案1】:

    你可以像这样直接从类中创建电子邮件:

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

    而且应该自动填写 created_at 和 updated_at

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-24
        • 2018-10-11
        • 2017-03-07
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多