首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让Gedmo\Timestampable在第一次创建时保持updated_at为空?

Gedmo\Timestampable是一个用于Doctrine ORM的扩展,它可以自动管理实体的创建时间和更新时间。默认情况下,当实体第一次创建时,updated_at字段会被自动设置为当前时间。如果希望在第一次创建时保持updated_at字段为空,可以通过以下步骤实现:

  1. 在实体类中使用Gedmo\Timestampable注解来标记需要自动管理的字段,例如:
代码语言:txt
复制
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @ORM\Entity
 */
class YourEntity
{
    // ...

    /**
     * @ORM\Column(type="datetime")
     * @Gedmo\Timestampable(on="create")
     */
    private $createdAt;

    /**
     * @ORM\Column(type="datetime")
     * @Gedmo\Timestampable(on="update")
     */
    private $updatedAt;

    // ...
}
  1. 在上述示例中,我们使用了@Gedmo\Timestampable(on="create")注解来标记createdAt字段,在实体第一次创建时,该字段会被自动设置为当前时间。而updatedAt字段使用了@Gedmo\Timestampable(on="update")注解,每次实体更新时,该字段会被自动更新为当前时间。
  2. 为了让Gedmo\Timestampable在第一次创建时保持updatedAt字段为空,我们可以在实体的构造函数中手动将updatedAt字段设置为null,例如:
代码语言:txt
复制
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class YourEntity
{
    // ...

    public function __construct()
    {
        $this->updatedAt = null;
    }

    // ...
}

通过上述步骤,当使用Doctrine ORM创建YourEntity实体时,updatedAt字段将保持为空。请注意,这只会影响实体的创建行为,而不会影响更新行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券