将实体持久保存到数据库时未生成Slug

时间:2014-04-04 15:17:39

标签: symfony slug doctrine-extensions

我正在使用DoctrineExtensions并按照文档进行操作。我的实体字段用Sluggable注释装饰:

   use Gedmo\Mapping\Annotation as Gedmo;
   .
   .
   .
   /**
     * @Gedmo\Slug(fields={"city"}, updatable=false)
     * @ORM\Column(length=255)
     */
    private $slug;

当我尝试持久化新实体时,我收到一个SQL错误:

坚持:

        $em = $this->getDoctrine()->getManager();
        $em->persist($location);
        $em->flush();

错误:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'slug' cannot be null

config.yml:

# Stof Doctrine Extensions
stof_doctrine_extensions:
    orm:
        default:
            sluggable: true

根据docs,这就是我所需要的,但是没有生成slu ..

1 个答案:

答案 0 :(得分:1)

这看起来很简单。我没有在orm.xml文件中映射字段...一旦我添加了这个映射就可以了:

<field name="slug" type="string" column="slug" length="255" nullable="false">
    <gedmo:slug fields="city" updatable="false" />
</field>