2017-05-21 6 views
0

私は、すべてのNote therのetudiant_idevaluation_idに対して、「Note」というエンティティを持っています。
etudiant_idとevaluation_idの組み合わせは一意である必要があります
私は彼に
Note object1(etudiant_id=1,evaluation_id=1) and Note2 object2(etudiant_id=1,evaluation_id=1)を渡してexmpleのために:これは例外をスローする必要があります。
ただし、 の場合:
Note object1(etudiant_id=1,evaluation_id=2) and Note2 object2(etudiant_id=1,evaluation_id=1):これは何も投げません。
ところで私は試しました:* @UniqueEntity(fields={"evaluation","etudiant"})しかし、このdidnt work correcte。あなたが唯一の@Entityアノテーションを持っている必要があり同じエンティティの2つのファイルの組み合わせを検証する

<?php 

namespace EcoleBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints as Assert; 


use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; 
/** 
* Note 
* @ORM\Entity 
* @UniqueEntity(fields={"evaluation","etudiant"}) 
* @ORM\Table(name="note") 
* @ORM\Entity(repositoryClass="EcoleBundle\Repository\NoteRepository") 
*/ 
class Note 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 



    /** 
    * @var float 
    * 
    * @ORM\Column(name="valeur", type="float", nullable=true) 
    */ 
    private $valeur; 

     /** 
    * @ORM\ManyToOne(targetEntity="EcoleBundle\Entity\Evaluation", inversedBy="notes") 
    */ 
    private $evaluation; 
    /** 
    * @ORM\ManyToOne(targetEntity="EcoleBundle\Entity\Etudiant", inversedBy="notes") 
    */ 
    private $etudiant; 
+0

ここではカスタム検証制約が必要なようです。ご使用のバージョンに応じて、このリンクが便利です:http://symfony.com/doc/current/validation/custom_constraint.html –

答えて

1


はここに私のノートエンティティです。これで置き換えてキャッシュをきれいにしてみてください。

/** 
* Note 
* @ORM\Entity(repositoryClass="EcoleBundle\Repository\NoteRepository") 
* @UniqueEntity(fields={"evaluation","etudiant"}) 
* @ORM\Table(name="note") 
*/ 
関連する問題