在prePersist Lifecycle Callback中使用原则UUID



有没有办法在实体生命周期回调中使用以前生成的UUID?

/**
 * @ORMTable("user")
 * @ORMHasLifecycleCallbacks()
 */
class User
{
    /**
     * @ORMId
     * @ORMColumn(name="id", type="guid")
     * @ORMGeneratedValue(strategy="UUID")
     */
    private $id;
    /**
     * @ORMColumn(name="slug", type="string", length=36)
     */
    private $slug;
    [.. getId() / setSlug() / getSlug() ..]
    /**
     * @ORMPrePersist
     */
    public function onPrePersist()
    {
        $this->setSlug($this->getId());
    }
}

我的目的是在用户创建时使用 UUID 作为默认 slug,直到我获得例如更新 slug 的用户名。可以由 mysql 触发解决方案吗?

我认为您有 2 个选择:

1) 您可以通过此库(或其他库)手动创建 UUID。然后,您可以在 prePersist 事件中访问它们。

2) 或者您使用 postPersist 处理程序,但这将创建一个 INSERT 语句和一个 UPDATE 语句。

使用MySQL触发器是一个坏主意,因为没有人可以控制它们。这就像魔术一样,它发生了,但没有人知道如何。更新它们是一种痛苦。

相关内容

  • 没有找到相关文章

最新更新