我有餐廳和類別 - 每個類別有一個餐廳,每個餐廳可以有很多類別。我希望每個餐廳的類別都有唯一的名稱,我希望有人試圖打破這種情況,以獲取表單無效的消息,而不會被模式阻止。所以這是我嘗試:兩列獨特的實體 - Symfony2
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Table(name="categories", uniqueConstraints={@ORM\UniqueConstraint(name="name_restaurant_id_idx", columns={"name", "restaurant_id"})}))
* @ORM\Entity(repositoryClass="MyBundle\Entity\CategoryRepository")
* @UniqueEntity({"name", "restaurant"})
*/
class Category
{
/** @ORM\Column(name="category_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $categoryId;
/**
* @ORM\Column(name="name", type="string", length=45, nullable=false, unique=true)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="MyBundle\Entity\Restaurant")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="restaurant_id", referencedColumnName="restaurant_id", unique=true)
* })
*/
private $restaurant;
,但它不工作:(我被架構停止了與
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
我也試過* @UniqueEntity({"name", "restaurant_id"})
,但我得到一個錯誤,restaurant_id是不主義映射。
任何想法,爲什麼它的工作不是:(
此問題似乎相關:http://stackoverflow.com/questions/12001753/why-is-my-symfony2-uniqueentity-constraint-not-working-at-all –
謝謝!但我沒有驗證組,也不想創建驗證組。 – Faery
'@UniqueEntity({「name」,「restaurant」})' –