Extension Sluggable avec condition
Salut
J'ai 3 entités, User, Store et Category , chaque utilisateur peut créer unj ou plusieur Store(boutique) et il peut créer des catégories pour chaque Store(boutique)
Je voudrais générer un unique Slug pour chaque Category à condition que que le Store n'est pas le même.
J'ai utilisé l'option "unique_base" mais ça marche pas.
Maintenant quand Store1 ajoute une nouvelle catégorie, par exemple "Jeans" la Slug sera «jeans», et si Store2 ajouter aussi une nouvelle catégorie avec même nom "Jeans", le Slug sera "jean-1".
J'aimerais que si le Store2 ajoute le même nom de catégorie "Jeans", le Slug reste "jeans" et non pas "jean-1", seulement si le même Store ajoute un nom category identique alors générer une nouvelle Slug.
entité Category :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<?php
namespace Project\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Category
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Project\StoreBundle\Entity\CategoryRepository")
* @ORM\HasLifeCycleCallbacks()
*/
class Category
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Gedmo\slug(fields={"name"}, unique_base="store")
* @ORM\Column(name="slug",length=255, unique=false)
*/
private $slug ;
/**
* @ORM\ManyToOne(targetEntity="Project\StoreBundle\Entity\Store", inversedBy="categories", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
private $store ;
/**
* Constructor
*/
public function __construct()
{
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
* @return Category
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set slug
*
* @param string $slug
* @return Category
*/
public function setSlug($slug)
{
$this->slug = $slug;
return $this;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
/**
* Set store
*
* @param \Project\StoreBundle\Entity\Store $store
* @return Category
*/
public function setStore(\Project\StoreBundle\Entity\Store $store = null)
{
$this->store = $store;
return $this;
}
/**
* Get store
*
* @return \Project\StoreBundle\Entity\Store
*/
public function getStore()
{
return $this->store;
}
} |
J'espère que la question est claire et merci d'avance