Eloquent通过创建设置updated_at值。何可以解决它?

时间:2016-12-07 14:47:29

标签: laravel eloquent

在Eloquent中实例化由两个时间戳建立的模型 - created_at和updated_at具有相同的值。但是,根据创建标签时的逻辑,应确定下次升级时创建的标签和标签是否更新。如何解决?

Eloquent 5.2,db中的created_at和updated_at是整数(受保护的$ dateFormat =' U')

更新 - 当我使用该方法时,属性 created_at updated_at 仍然会同时更新。这是第一个动作 - 创作,被设置为平等。第二个动作 - 更新。同样,两个字段都会更新,并且它们具有相同的值。

1 个答案:

答案 0 :(得分:0)

这就是Laravel有时会做的事情,而不是让updated_at null也是一种避免非空约束问题的方法。但如果你愿意,你可以为你解决这个问题。你可能会做这样的事情:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model as Eloquent;

class BaseModel extends Eloquent
{
    public function save(array $options = [])
    {
        $saved = parent::save($options);

        if ($this->wasRecentlyCreated) {
            $this->updated_at = null;

            parent::save($options);
        }

        return $saved;
    }
}

在所有模型中使用此BaseModel