I'm using Gedmo\Mapping\Annotation\Slug
to generate a slug for a Symfony entity. This slug property is defined as unique:
/**
* @Gedmo\Slug(fields={"type"})
* @ORM\Column(type="string", length=255, unique=true)
*/
private $slug;
I would like to be able to retrieve the generated slug string before persisting, in order to handle unicity errors correctly.
Of course I could catch exceptions throwed by the persist()
method, but it's not a good solution for other reasons.
To be concise, I took an example from the doc, and added what is missing for my needs (with pseudo-code):
<?php
$article = new Article();
$article->setTitle('the title');
$article->setCode('my code');
// What I need is the 'getUpdatedSlugName()' function:
if (getUpdatedSlugName($article) [already exists]) {
throw new MyException("Sorry, this article name/slug already exists!");
}
$this->em->persist($article);
$this->em->flush();