use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Hateoas\Configuration\Annotation as Hateoas;
-use Symfony\Component\Serializer\Annotation\Groups;
+use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\XmlRoot;
use Wallabag\UserBundle\Entity\User;
*/
public function addTag(Tag $tag)
{
+ if ($this->tags->contains($tag)) {
+ return;
+ }
+
+ // check if tag already exist but has not yet be persisted
+ // it seems that the previous condition with `contains()` doesn't check that case
+ foreach ($this->tags as $existingTag) {
+ if ($existingTag->getLabel() === $tag->getLabel()) {
+ return;
+ }
+ }
+
$this->tags[] = $tag;
$tag->addEntry($this);
}