代码之家  ›  专栏  ›  技术社区  ›  Dirk J. Faber

条令扩展:冲入数据库前生成弹头

  •  1
  • Dirk J. Faber  · 技术社区  · 6 年前

    使用 StofDoctrineExtensionsBundle (对于symfony)我为我的实体生成一个slug Institution 基于其属性 internationalName 这样地:

    机构.php

    /**
     * @ORM\Column(type="string", length=100, unique=true)
     * @Gedmo\Slug(fields={"internationalName"})
     */
    private $slug;
    

    在我的配置设置中,我设置了 sluggable: true 当创建一个新的 机构 或者更新现有的。

    在刷新到数据库之前,我需要在控制器中生成slug。问题是,slug是在新实体刷新到数据库时生成的。我已经搜索了这个问题,发现了两个没有令人满意答案的问题, here here .

    最好的建议是改变 getSlug() 在这样的实体中:

    public function getSlug()
    {
        if (!$this->slug) {
            return Urlizer::urlize($this->getInternationalName());
        }
        return $this->slug;
    }
    

    然而, 国际名称 因为我的实体不必是唯一的,所以如果 国际名称 数据库中已存在,这会在我的控制器中产生问题。

    有没有办法产生一个独特的弹头预冲洗?

    0 回复  |  直到 6 年前