首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel5.2中的DateTime和updated_at字段中的错误

Laravel5.2中的DateTime和updated_at字段中的错误
EN

Stack Overflow用户
提问于 2016-04-25 05:04:29
回答 1查看 2.7K关注 0票数 0

我使用的是监控程序mongodb,我试图在控制器中保存created_at和updated_at,

代码语言:javascript
复制
"updated_at" : ISODate("1970-01-11T19:45:21.925Z"),
"created_at" : ISODate("1970-01-11T19:45:21.925Z")

即使是更新,错误的日期也在保存。

在我的app.php里

化名

代码语言:javascript
复制
'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',

在提供者中

代码语言:javascript
复制
'Jenssegers\Mongodb\Auth\PasswordResetServiceProvider',

在我的模型里

代码语言:javascript
复制
use Moloquent;

class Task extends Moloquent{
      //$fillables = [];
}

请提前帮助我解决这个问题,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-04-25 05:30:29

实际上-在使用jenssegers/Laravel-MongoDB包时,保存新模型对象时会自动设置、created_at、updated_at属性。

但是,如果仍然希望手动设置时间戳或任何其他日期时间字段,则必须将datetime对象(或碳)转换为MongoDB\BSON\UTCDateTime

所以应该是这样的:

代码语言:javascript
复制
$myModel = new MyModel();
$myModel->created_at = $myModel->fromDateTime(new \DateTime());
//...

对于创建的_at/updated_at以外的另一个datetime属性:

代码语言:javascript
复制
class Task extends Model
{
    protected  $collection = 'tasks';

    protected $duedate;

    protected  $dates = ['duedate'];

    /** Mutator */
    public function setDuedateAttribute($value)
    {
        /** @var \MongoDB\BSON\UTCDateTime */
        $this->attributes['duedate'] = $this->fromDateTime(
            \DateTime::createFromFormat('d/m/Y H:i', $value . '00:00'));
    }
}

Jenssegers\Mongodb\Eloquent::fromDateTime()可以从任何模型实例中获得,因为它是从父模型继承的(参见github)。此方法将DateTime转换为可存储的UTCDateTime对象(这是内部datetime mongo代表)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36832359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档